From d2494c25cc662a679b1e663455f6b55a11548dbe Mon Sep 17 00:00:00 2001 From: feng <1304903146@qq.com> Date: Mon, 15 Sep 2025 19:13:55 +0800 Subject: [PATCH] perf: Translate --- apps/common/const/choices.py | 1 + apps/i18n/_translator/base.py | 1 + apps/i18n/chen/vi.json | 85 + apps/i18n/core/vi/LC_MESSAGES/django.po | 11752 ++++++++++++++++++++ apps/i18n/core/vi/LC_MESSAGES/djangojs.po | 100 + apps/i18n/koko/en.json | 105 +- apps/i18n/koko/es.json | 102 +- apps/i18n/koko/ja.json | 102 +- apps/i18n/koko/ko.json | 102 +- apps/i18n/koko/pt_br.json | 102 +- apps/i18n/koko/ru.json | 102 +- apps/i18n/koko/vi.json | 227 + apps/i18n/koko/zh.json | 102 +- apps/i18n/koko/zh_hant.json | 102 +- apps/i18n/lina/es.json | 3 + apps/i18n/lina/ja.json | 3 + apps/i18n/lina/ko.json | 3 + apps/i18n/lina/pt_br.json | 3 + apps/i18n/lina/ru.json | 3 + apps/i18n/lina/vi.json | 1631 +++ apps/i18n/lina/zh_hant.json | 3 + apps/i18n/lion/vi.json | 110 + apps/i18n/luna/vi.json | 289 + apps/reports/views.py | 2 +- 24 files changed, 15026 insertions(+), 9 deletions(-) create mode 100644 apps/i18n/chen/vi.json create mode 100644 apps/i18n/core/vi/LC_MESSAGES/django.po create mode 100644 apps/i18n/core/vi/LC_MESSAGES/djangojs.po create mode 100644 apps/i18n/koko/vi.json create mode 100644 apps/i18n/lina/vi.json create mode 100644 apps/i18n/lion/vi.json create mode 100644 apps/i18n/luna/vi.json diff --git a/apps/common/const/choices.py b/apps/common/const/choices.py index 78c9d7f2c..6808649e0 100644 --- a/apps/common/const/choices.py +++ b/apps/common/const/choices.py @@ -77,6 +77,7 @@ class Language(models.TextChoices): es = 'es', 'Español' ru = 'ru', 'Русский' ko = 'ko', '한국어' + vi = 'vi', 'Tiếng Việt' @classmethod def get_code_mapper(cls): diff --git a/apps/i18n/_translator/base.py b/apps/i18n/_translator/base.py index 2199d46e1..3c8017cc8 100644 --- a/apps/i18n/_translator/base.py +++ b/apps/i18n/_translator/base.py @@ -16,6 +16,7 @@ class BaseTranslateManager: 'es': 'Spanish', 'ru': 'Russian', 'ko': 'Korean', + 'vi': 'Vietnamese', } def __init__(self, dir_path, oai_trans_instance): diff --git a/apps/i18n/chen/vi.json b/apps/i18n/chen/vi.json new file mode 100644 index 000000000..4cb48eae4 --- /dev/null +++ b/apps/i18n/chen/vi.json @@ -0,0 +1,85 @@ +{ + "ACLRejectError": "Lệnh này không được phép thực hiện", + "AffectedRows": "Trình duyệt cơ sở dữ liệu", + "AlreadyFirstPageError": "Đã là trang đầu tiên", + "AlreadyLastPageError": "Đã đến trang cuối cùng", + "Cancel": "Hủy bỏ", + "ChangeContextError": "Chuyển đổi ngữ cảnh thất bại", + "CommandReview": "Xác nhận lệnh", + "CommandReviewMessage": "Lệnh bạn nhập cần được xác nhận trước khi thực thi, có muốn gửi yêu cầu xác nhận không?", + "CommandReviewRejectBy": "Lệnh xác nhận bị %s từ chối", + "CommandReviewTimeoutError": "Thời gian xác nhận lệnh đã hết", + "CommandWarningDialogMessage": "Lệnh bạn thực hiện có nguy cơ, thông báo cảnh báo sẽ được gửi đến quản lý. Bạn có muốn tiếp tục không?< -SEP->Chạy (Ctrl + Enter)", + "Confirm": "Xác nhận", + "ConnectError": "Kết nối thất bại", + "ConnectSuccess": "Kết nối thành công", + "Connected": "Đã kết nối", + "Copy": "Sao chép", + "CopyFailed": "Sao chép thất bại", + "CopyNotAllowed": "Không được phép sao chép, hãy liên hệ với quản trị viên để mở quyền!", + "CopySucceeded": "Sao chép thành công", + "Current": "Hiện tại", + "DatabaseExplorer": "Người dùng", + "DatabaseProperties": "Thuộc tính nguồn dữ liệu", + "DownloadNotAllowed": "Không cho phép tải về, vui lòng liên hệ với quản lý để mở quyền!", + "DriverClass": "Điều khiển", + "DriverVersion": "Phiên bản lái", + "ErrorMessage": "Thông báo lỗi", + "ExecuteError": "Thực hiện thành công", + "ExecuteSuccess": "Thực hiện thành công", + "ExecutionCanceled": "Thực hiện đã bị hủy", + "ExportALL": "Xuất tất cả dữ liệu", + "ExportAll": "Xuất toàn bộ", + "ExportCurrent": "Xuất trang hiện tại", + "ExportData": "Xuất dữ liệu", + "FetchError": "Lấy dữ liệu thất bại", + "Format": "Định dạng", + "FormatHotKey": "Định dạng (Ctrl + L)", + "InitializeDatasource": "Khởi tạo nguồn dữ liệu", + "InitializeDatasourceFailed": "Khởi tạo nguồn dữ liệu thất bại", + "InitializingDatasourceMessage": "Đang khởi tạo nguồn dữ liệu, xin vui lòng chờ...", + "InsertStatement": "Câu lệnh chèn", + "JDBCURL": "JDBC URL", + "LogOutput": "Xuất nhật ký", + "Name": "Tên", + "NewQuery": "Tạo mới truy vấn", + "NoPermissionError": "Không có quyền thực hiện thao tác này", + "NumRow": "{num} dòng", + "Open": "Mở", + "OverMaxIdleTimeError": "Do phiên này quá thời gian rỗi vượt quá %d phút, đã bị đóng", + "OverMaxSessionTimeError": "Do vì cuộc trò chuyện này kéo dài hơn %d giờ, nó đã bị đóng. \nThuộc tính \nKết nối thành công \nPhiên đã kết thúc \nSao chép thất bại \nLàm mới \nSao chép thành công \nKết nối thất bại \nQuyền đã hết hạn, phiên sẽ hết hạn sau mười phút, vui lòng liên hệ với quản lý để gia hạn kịp thời \nKhông được phép dán, vui lòng liên hệ với quản lý để mở quyền! \nKhông có quyền thực hiện thao tác này \nJDBC URL \nChuyển đổi ngữ cảnh thất bại \nQuyền đã hết hạn \nChọn SQL", + "ParseError": "Phân tích thất bại", + "PasteNotAllowed": "Không cho phép dán, vui lòng liên hệ với quản trị viên để mở quyền!", + "PermissionAlreadyExpired": "Quyền đã hết hạn", + "PermissionExpiredDialogMessage": "- Quyền hạn đã hết hạn, phiên làm việc sẽ hết hạn sau mười phút, xin vui lòng liên hệ với quản lý để gia hạn.\n- Phiên làm việc đã kết thúc.\n- Không cho phép dán, xin vui lòng liên hệ với quản lý để mở quyền!\n- Thuộc tính.\n- Chuyển đổi ngữ cảnh thất bại.\n- Sao chép không thành công.\n- Kết nối thất bại.\n- Làm mới.\n- Chọn SQL.\n- Thực hiện thành công.\n- Kết nối thành công.\n- Sao chép thành công.\n- Quyền hạn đã hết hạn.\n- JDBC URL.\n- Không có quyền thực hiện thao tác này.", + "PermissionExpiredDialogTitle": "Số dòng bị ảnh hưởng", + "PermissionsExpiredOn": "Quyền liên kết với phiên này đã hết hạn vào %s", + "Properties": "Thuộc tính", + "Refresh": "Làm mới", + "Run": "Chạy", + "RunHotKey": "Quyền đã hết hạn", + "RunSelected": "Chạy đã chọn", + "Save": "Lưu", + "SaveSQL": "Lưu SQL", + "SaveSucceed": "Lưu thành công", + "Scope": "Phạm vi", + "SelectSQL": "Chọn SQL", + "SessionClosedBy": "Phiên đã bị %s đóng", + "SessionFinished": "Phiên làm việc đã kết thúc", + "SessionLockedError": "Phiên hiện tại đã bị khóa, không thể tiếp tục thực hiện lệnh", + "SessionLockedMessage": "Phiên này đã bị %s khóa, không thể tiếp tục thực hiện lệnh", + "SessionUnlockedMessage": "Phiên này đã được %s mở khóa, có thể tiếp tục thực hiện lệnh", + "ShowProperties": "Thuộc tính", + "StopHotKey": "Dừng (Ctrl + D)", + "Submit": "Gửi", + "Total": "Tổng cộng", + "Type": "Loại", + "UpdateStatement": "Câu lệnh cập nhật", + "User": "Thực hiện thất bại", + "UserCancelCommandReviewError": "Người dùng hủy lệnh duyệt lại", + "Version": "Phiên bản", + "ViewData": "Xem dữ liệu", + "WaitCommandReviewMessage": "Yêu cầu xem xét đã được gửi đi, xin vui lòng chờ kết quả xem xét.", + "Warning": "Cảnh báo", + "initializingDatasourceFailedMessage": "Kết nối thất bại, vui lòng kiểm tra cấu hình kết nối cơ sở dữ liệu có chính xác hay không." +} \ No newline at end of file diff --git a/apps/i18n/core/vi/LC_MESSAGES/django.po b/apps/i18n/core/vi/LC_MESSAGES/django.po new file mode 100644 index 000000000..44fad7556 --- /dev/null +++ b/apps/i18n/core/vi/LC_MESSAGES/django.po @@ -0,0 +1,11752 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-22 18:01+0800\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: accounts/api/account/account.py:138 +#: accounts/serializers/account/account.py:181 +#: accounts/serializers/account/account.py:345 +msgid "Account already exists" +msgstr "Tài khoản đã tồn tại" + +#: accounts/api/account/application.py:77 +#: authentication/api/connection_token.py:452 +msgid "Account not found" +msgstr "Tài khoản không tìm thấy" + +#: accounts/api/automations/base.py:86 tickets/api/ticket.py:132 +msgid "The parameter 'action' must be [{}]" +msgstr "Tham số 'action' phải là [{}]" + +#: accounts/automations/backup_account/handlers.py:23 +msgid "The account key will be split into two parts and sent" +msgstr "Khóa tài khoản sẽ được chia thành hai phần gửi đi" + +#: accounts/automations/backup_account/handlers.py:131 +msgid "Number of backup accounts" +msgstr "Số lượng tài khoản sao lưu" + +#: accounts/automations/backup_account/handlers.py:152 +msgid "Generating asset related backup information files" +msgstr "Tạo tệp thông tin sao lưu liên quan đến tài sản" + +#: accounts/automations/backup_account/handlers.py:177 +#: accounts/automations/backup_account/manager.py:26 +#: accounts/automations/change_secret/manager.py:81 +#: accounts/automations/push_account/manager.py:62 +#: assets/models/automations/base.py:147 ops/serializers/job.py:71 +#: ops/serializers/job.py:95 +#: settings/templates/ldap/_msg_import_ldap_user.html:7 +#: terminal/serializers/session.py:57 +msgid "Duration" +msgstr "Thời gian tiêu tốn" + +#: accounts/automations/backup_account/handlers.py:178 +msgid "Backup file creation completed" +msgstr "Hoàn thành việc tạo tệp sao lưu" + +#: accounts/automations/backup_account/handlers.py:186 +msgid "Start sending backup emails" +msgstr "Bắt đầu gửi email sao lưu" + +#: accounts/automations/backup_account/handlers.py:213 +msgid "Encrypting files using encryption password" +msgstr "Đang mã hóa tệp bằng mật khẩu mã hóa" + +#: accounts/automations/backup_account/handlers.py:223 +msgid "The backup file will be sent to" +msgstr "Tệp sao lưu sẽ được gửi đến" + +#: accounts/automations/backup_account/handlers.py:246 +msgid "The backup task has no assigned sftp server" +msgstr "Nhiệm vụ sao lưu này chưa được phân bổ máy chủ sftp" + +#: accounts/automations/backup_account/handlers.py:267 +msgid "The backup task has no assigned recipient" +msgstr "Nhiệm vụ sao lưu không chỉ định người nhận" + +#: accounts/automations/backup_account/handlers.py:290 +msgid "Plan start" +msgstr "Nhiệm vụ bắt đầu" + +#: accounts/automations/backup_account/manager.py:14 +msgid "The account backup plan is being executed" +msgstr "Kế hoạch sao lưu tài khoản đang được thực hiện" + +#: accounts/automations/backup_account/manager.py:24 +#: accounts/automations/change_secret/manager.py:79 +#: accounts/automations/push_account/manager.py:60 +msgid "Plan execution end" +msgstr "Kế hoạch thực hiện đã kết thúc" + +#: accounts/automations/base/manager.py:125 +msgid "No pending accounts found" +msgstr "Không tìm thấy tài khoản chờ xử lý" + +#: accounts/automations/change_secret/manager.py:72 +msgid "Success: %s, Failed: %s, Total: %s" +msgstr "Thành công: %s, Thất bại: %s, Tổng số: %s" + +#: accounts/automations/check_account/manager.py:277 +msgid "Check account report of {}" +msgstr "Báo cáo phát hiện rủi ro {}" + +#: accounts/automations/check_account/manager.py:283 +msgid "" +"---\n" +"Summary: \n" +"ok: {}, weak password: {}, leaked password: {}, repeated password: {}, no secret: {}, using time: {}s" +msgstr "" +"--- Tóm tắt: Bình thường: {}, Mật khẩu yếu: {}, Mật khẩu bị rò rỉ: {}, Mật " +"khẩu trùng lặp: {}, Không có mật khẩu: {}, Thời gian tiêu tốn: {} giây" + +#: accounts/automations/push_account/manager.py:33 +msgid "Secret cannot be empty" +msgstr "Nội dung mã hóa không được để trống" + +#: accounts/automations/verify_gateway_account/manager.py:18 +msgid ">>> Start executing the task to test gateway account connectivity" +msgstr "" +">>> Bắt đầu thực hiện nhiệm vụ kiểm tra khả năng kết nối tài khoản testnet" + +#: accounts/const/account.py:6 +#: accounts/serializers/automations/change_secret.py:36 +#: audits/signal_handlers/login_log.py:34 +#: authentication/confirm/password.py:25 authentication/confirm/password.py:27 +#: authentication/const.py:10 authentication/forms.py:28 +#: authentication/templates/authentication/login.html:368 +#: authentication/templates/authentication/login.html:414 +#: reports/api/users/user.py:101 settings/models.py:246 +#: settings/serializers/auth/ldap.py:27 settings/serializers/auth/ldap.py:53 +#: settings/serializers/auth/ldap_ha.py:35 settings/serializers/msg.py:37 +#: settings/serializers/terminal.py:32 terminal/serializers/storage.py:123 +#: terminal/serializers/storage.py:142 users/forms/profile.py:22 +#: users/serializers/user.py:148 +#: users/templates/users/_msg_user_created.html:13 +#: users/templates/users/user_password_verify.html:18 +#: xpack/plugins/cloud/serializers/account_attrs.py:43 +msgid "Password" +msgstr "Mật khẩu" + +#: accounts/const/account.py:7 +#: accounts/serializers/automations/change_secret.py:37 +#: authentication/models/ssh_key.py:27 terminal/serializers/storage.py:124 +msgid "SSH key" +msgstr "Khóa SSH" + +#: accounts/const/account.py:8 authentication/models/access_key.py:41 +msgid "Access key" +msgstr "Key truy cập" + +#: accounts/const/account.py:9 authentication/backends/passkey/models.py:16 +#: authentication/models/sso_token.py:14 settings/serializers/feature.py:86 +msgid "Token" +msgstr "Mã thông hành" + +#: accounts/const/account.py:10 +msgid "API key" +msgstr "API key" + +#: accounts/const/account.py:14 common/db/fields.py:231 +#: settings/serializers/terminal.py:14 tickets/const.py:17 +msgid "All" +msgstr "Tất cả" + +#: accounts/const/account.py:15 accounts/models/virtual.py:27 +msgid "Manual input" +msgstr "Nhập thủ công" + +#: accounts/const/account.py:16 +msgid "Dynamic user" +msgstr "Tài khoản trùng tên" + +#: accounts/const/account.py:17 +msgid "Anonymous account" +msgstr "Tài khoản ẩn danh" + +#: accounts/const/account.py:18 +msgid "Specified account" +msgstr "Tài khoản chỉ định" + +#: accounts/const/account.py:26 users/models/user/_source.py:13 +msgid "Local" +msgstr "Cơ sở dữ liệu" + +#: accounts/const/account.py:27 +msgid "Discovery" +msgstr "Phát hiện" + +#: accounts/const/account.py:28 accounts/serializers/account/account.py:28 +#: settings/serializers/auth/sms.py:84 +msgid "Template" +msgstr "Mẫu" + +#: accounts/const/account.py:32 ops/const.py:47 +#: xpack/plugins/cloud/const.py:75 +msgid "Skip" +msgstr "Bỏ qua" + +#: accounts/const/account.py:33 audits/const.py:24 rbac/tree.py:291 +#: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6 +msgid "Update" +msgstr "Cập nhật" + +#: accounts/const/account.py:34 accounts/const/automation.py:115 +#: accounts/serializers/automations/change_secret.py:171 audits/const.py:66 +#: audits/signal_handlers/activity_log.py:34 common/const/choices.py:66 +#: ops/const.py:77 terminal/const.py:81 xpack/plugins/cloud/const.py:54 +msgid "Failed" +msgstr "Thất bại" + +#: accounts/const/automation.py:25 rbac/tree.py:55 +msgid "Push account" +msgstr "Đẩy tài khoản" + +#: accounts/const/automation.py:26 accounts/risk_handlers.py:26 +#: audits/const.py:32 ops/const.py:11 +msgid "Change secret" +msgstr "Đổi mật khẩu" + +#: accounts/const/automation.py:27 +msgid "Verify account" +msgstr "Xác thực tài khoản" + +#: accounts/const/automation.py:28 accounts/tasks/remove_account.py:25 +#: accounts/tasks/remove_account.py:38 +msgid "Remove account" +msgstr "Xóa tài khoản" + +#: accounts/const/automation.py:29 +msgid "Gather accounts" +msgstr "Phát hiện tài khoản" + +#: accounts/const/automation.py:30 +msgid "Verify gateway account" +msgstr "Xác thực tài khoản cổng mạng" + +#: accounts/const/automation.py:31 +msgid "Check account" +msgstr "Kiểm tra tài khoản" + +#: accounts/const/automation.py:32 rbac/tree.py:53 +msgid "Backup account" +msgstr "Sao lưu tài khoản" + +#: accounts/const/automation.py:53 +msgid "Specific secret" +msgstr "Chỉ định" + +#: accounts/const/automation.py:54 +msgid "Random generate" +msgstr "Tạo ngẫu nhiên" + +#: accounts/const/automation.py:59 ops/const.py:17 +msgid "Replace (Replace only keys pushed by JumpServer) " +msgstr "Thay thế (chỉ thay thế các khóa do JumpServer gửi)" + +#: accounts/const/automation.py:60 ops/const.py:16 +msgid "Empty and append SSH KEY" +msgstr "Xóa sạch tất cả và thêm" + +#: accounts/const/automation.py:65 +msgid "On asset create" +msgstr "Khi tạo tài sản" + +#: accounts/const/automation.py:68 +msgid "On perm add user" +msgstr "Thêm người dùng khi thay đổi quyền hạn" + +#: accounts/const/automation.py:70 +msgid "On perm add user group" +msgstr "Thêm nhóm người dùng khi thay đổi quyền hạn" + +#: accounts/const/automation.py:72 +msgid "On perm add asset" +msgstr "Thêm tài sản khi thay đổi quyền hạn" + +#: accounts/const/automation.py:74 +msgid "On perm add node" +msgstr "Thêm nút khi thay đổi quyền hạn" + +#: accounts/const/automation.py:76 +msgid "On perm add account" +msgstr "Thêm tài khoản khi thay đổi quyền hạn" + +#: accounts/const/automation.py:78 +msgid "On asset join node" +msgstr "Thêm vào nút khi thay đổi tài sản" + +#: accounts/const/automation.py:80 +msgid "On user join group" +msgstr "Thêm vào nhóm người dùng khi thay đổi người dùng" + +#: accounts/const/automation.py:88 +msgid "On perm change" +msgstr "Khi thay đổi quyền hạn" + +#: accounts/const/automation.py:95 +msgid "Inherit from group or node" +msgstr "Kế thừa từ nhóm người dùng hoặc nút tài sản" + +#: accounts/const/automation.py:103 +msgid "Create and push" +msgstr "Tạo và đẩy lên" + +#: accounts/const/automation.py:104 +msgid "Only create" +msgstr "Chỉ tạo" + +#: accounts/const/automation.py:109 authentication/const.py:34 +#: authentication/serializers/password_mfa.py:16 +#: authentication/serializers/password_mfa.py:24 +#: notifications/backends/__init__.py:10 settings/serializers/msg.py:21 +#: settings/serializers/msg.py:61 users/forms/profile.py:101 +#: users/forms/profile.py:111 users/models/user/__init__.py:67 +#: users/templates/users/forgot_password.html:162 +#: users/views/profile/reset.py:94 +msgid "Email" +msgstr "Hộp thư" + +#: accounts/const/automation.py:111 terminal/const.py:89 +msgid "SFTP" +msgstr "SFTP" + +#: accounts/const/automation.py:116 +#: accounts/serializers/automations/change_secret.py:170 audits/const.py:65 +#: audits/models.py:65 audits/signal_handlers/activity_log.py:34 +#: common/const/choices.py:65 ops/const.py:75 ops/serializers/celery.py:48 +#: terminal/const.py:80 terminal/models/session/sharing.py:119 +#: tickets/views/approve.py:128 +msgid "Success" +msgstr "Success" + +#: accounts/const/automation.py:117 common/const/choices.py:63 +#: common/const/choices.py:113 terminal/const.py:79 tickets/const.py:30 +#: tickets/const.py:39 +msgid "Pending" +msgstr "Đang chờ xử lý" + +#: accounts/const/automation.py:121 +msgid "Queued" +msgstr "Sẵn sàng" + +#: accounts/const/automation.py:122 common/const/choices.py:62 +msgid "Ready" +msgstr "Đang xử lý" + +#: accounts/const/automation.py:123 +msgid "Processing" +msgstr "Có thể đăng nhập" + +#: accounts/const/automation.py:127 +msgid "Can login" +msgstr "Siêu người dùng" + +#: accounts/const/automation.py:128 users/serializers/user.py:254 +msgid "Superuser" +msgstr "Ngày tạo" + +#: accounts/const/automation.py:129 +msgid "Create date" +msgstr "Đã bị vô hiệu hóa" + +#: accounts/const/automation.py:130 +msgid "Is disabled" +msgstr "Tên cơ sở dữ liệu mặc định" + +#: accounts/const/automation.py:131 +msgid "Default database name" +msgstr "UID" + +#: accounts/const/automation.py:132 +msgid "UID" +msgstr "Trạng thái tài khoản" + +#: accounts/const/automation.py:133 +msgid "Account status" +msgstr "Trạng thái tài khoản" + +#: accounts/const/automation.py:134 +msgid "Default tablespace" +msgstr "Không gian bảng mặc định" + +#: accounts/const/automation.py:135 rbac/models/role.py:46 +#: rbac/models/rolebinding.py:52 users/models/user/__init__.py:75 +msgid "Role" +msgstr "Vai trò" + +#: accounts/const/automation.py:136 accounts/models/base.py:68 +msgid "Privileged" +msgstr "Tài khoản đặc quyền" + +#: accounts/const/automation.py:137 perms/serializers/permission.py:55 +#: users/serializers/user.py:245 +msgid "Groups" +msgstr "Nhóm người dùng" + +#: accounts/const/automation.py:139 +msgid "Authorized keys" +msgstr "Khóa xác thực" + +#: accounts/const/automation.py:140 +msgid "DB" +msgstr "Cơ sở dữ liệu" + +#: accounts/const/vault.py:8 assets/const/category.py:12 +#: assets/models/asset/database.py:10 assets/models/asset/database.py:29 +#: xpack/plugins/cloud/const.py:40 +msgid "Database" +msgstr "Cơ sở dữ liệu" + +#: accounts/const/vault.py:9 settings/serializers/feature.py:81 +msgid "HCP Vault" +msgstr "HashiCorp Vault" + +#: accounts/const/vault.py:10 settings/serializers/feature.py:94 +msgid "Azure Key Vault" +msgstr "Azure Key Vault" + +#: accounts/const/vault.py:11 settings/serializers/feature.py:110 +msgid "Amazon Secrets Manager" +msgstr "Amazon Secrets Manager" + +#: accounts/exceptions.py:7 +msgid "" +"Vault operation failed. Please retry or check your account information on " +"Vault." +msgstr "" +"Thao tác Vault thất bại, vui lòng thử lại hoặc kiểm tra thông tin tài khoản " +"trên Vault." + +#: accounts/models/account.py:85 +#: accounts/models/automations/check_account.py:59 +#: accounts/models/automations/gather_account.py:17 +#: accounts/serializers/account/account.py:227 +#: accounts/serializers/account/account.py:277 +#: accounts/serializers/automations/change_secret.py:115 +#: accounts/serializers/automations/change_secret.py:147 +#: accounts/serializers/automations/change_secret.py:188 +#: accounts/serializers/automations/check_account.py:33 +#: accounts/serializers/automations/gather_account.py:48 +#: accounts/templates/accounts/asset_account_change_info.html:7 +#: accounts/templates/accounts/change_secret_failed_info.html:11 +#: accounts/templates/accounts/change_secret_report.html:79 +#: accounts/templates/accounts/change_secret_report.html:119 +#: accounts/templates/accounts/gather_account_report.html:77 +#: accounts/templates/accounts/gather_account_report.html:117 +#: accounts/templates/accounts/push_account_report.html:78 +#: accounts/templates/accounts/push_account_report.html:118 +#: acls/serializers/base.py:132 assets/models/asset/common.py:102 +#: assets/models/asset/common.py:428 assets/models/cmd_filter.py:36 +#: audits/models.py:59 audits/models.py:336 audits/serializers.py:230 +#: authentication/models/connection_token.py:41 +#: perms/models/asset_permission.py:69 terminal/backends/command/models.py:17 +#: terminal/models/session/session.py:29 terminal/notifications.py:156 +#: terminal/serializers/command.py:17 terminal/serializers/session.py:38 +#: terminal/templates/terminal/_msg_command_warning.html:4 +#: terminal/templates/terminal/_msg_session_sharing.html:4 +#: tickets/models/ticket/apply_asset.py:17 xpack/plugins/cloud/models.py:295 +msgid "Asset" +msgstr "Tài sản" + +#: accounts/models/account.py:89 accounts/models/template.py:16 +#: accounts/serializers/account/account.py:234 +#: accounts/serializers/account/account.py:287 +#: accounts/serializers/account/template.py:35 +#: authentication/serializers/connect_token_secret.py:51 +msgid "Su from" +msgstr "Switch from" + +#: accounts/models/account.py:91 assets/const/protocol.py:195 +#: settings/serializers/auth/cas.py:25 terminal/models/applet/applet.py:36 +#: terminal/models/virtualapp/virtualapp.py:21 +msgid "Version" +msgstr "Phiên bản" + +#: accounts/models/account.py:94 +msgid "historical Account" +msgstr "Tài khoản lịch sử" + +#: accounts/models/account.py:96 +msgid "Secret reset" +msgstr "Có thể thay đổi mật khẩu" + +#: accounts/models/account.py:97 accounts/serializers/account/account.py:229 +#: users/models/user/__init__.py:128 +msgid "Source" +msgstr "Nguồn" + +#: accounts/models/account.py:98 +msgid "Source ID" +msgstr "Mã nguồn" + +#: accounts/models/account.py:99 +msgid "Date last access" +msgstr "Ngày truy cập lần cuối" + +#: accounts/models/account.py:100 +msgid "Access by" +msgstr "Access by" + +#: accounts/models/account.py:101 +msgid "Date change secret" +msgstr "Ngày mật khẩu" + +#: accounts/models/account.py:103 +msgid "Change secret status" +msgstr "Trạng thái đổi mật khẩu" + +#: accounts/models/account.py:107 +#: accounts/models/automations/check_account.py:64 +#: accounts/serializers/account/service.py:13 +#: accounts/serializers/automations/change_secret.py:117 +#: accounts/serializers/automations/change_secret.py:148 +#: accounts/templates/accounts/change_secret_failed_info.html:12 +#: acls/serializers/base.py:133 +#: acls/templates/acls/asset_login_reminder.html:10 +#: assets/serializers/gateway.py:33 audits/models.py:60 audits/models.py:337 +#: audits/serializers.py:231 authentication/api/connection_token.py:464 +#: ops/models/base.py:18 perms/models/asset_permission.py:75 +#: settings/serializers/msg.py:33 terminal/backends/command/models.py:18 +#: terminal/models/session/session.py:31 terminal/serializers/command.py:72 +#: terminal/templates/terminal/_msg_command_warning.html:8 +#: terminal/templates/terminal/_msg_session_sharing.html:8 +#: tickets/models/ticket/command_confirm.py:14 +#: xpack/plugins/cloud/models.py:106 xpack/plugins/cloud/ws.py:37 +msgid "Account" +msgstr "Tài khoản" + +#: accounts/models/account.py:113 +msgid "Can view asset account secret" +msgstr "Có thể xem mật khẩu tài khoản tài sản" + +#: accounts/models/account.py:114 +msgid "Can view asset history account" +msgstr "Có thể xem lịch sử tài khoản tài sản" + +#: accounts/models/account.py:115 +msgid "Can view asset history account secret" +msgstr "Có thể xem mật khẩu lịch sử tài khoản tài sản" + +#: accounts/models/account.py:116 +msgid "Can verify account" +msgstr "Có thể xác minh tài khoản" + +#: accounts/models/account.py:117 +msgid "Can push account" +msgstr "Có thể đẩy tài khoản" + +#: accounts/models/account.py:118 +msgid "Can remove account" +msgstr "Có thể xóa tài khoản" + +#: accounts/models/account.py:119 +msgid "Can view session" +msgstr "Phiên tài khoản" + +#: accounts/models/account.py:120 +msgid "Can view activity" +msgstr "Hoạt động tài khoản" + +#: accounts/models/application.py:16 +#: accounts/models/automations/check_account.py:118 accounts/models/base.py:63 +#: accounts/serializers/account/service.py:29 +#: accounts/serializers/account/virtual.py:20 acls/models/base.py:35 +#: acls/models/base.py:96 acls/models/command_acl.py:21 +#: acls/serializers/base.py:35 assets/models/asset/common.py:100 +#: assets/models/asset/common.py:166 assets/models/cmd_filter.py:21 +#: assets/models/label.py:18 assets/models/platform.py:15 +#: assets/models/platform.py:94 assets/models/zone.py:19 +#: assets/serializers/asset/common.py:173 assets/serializers/platform.py:158 +#: assets/serializers/platform.py:283 +#: authentication/backends/passkey/models.py:10 +#: authentication/models/ssh_key.py:12 +#: authentication/serializers/connect_token_secret.py:117 +#: authentication/serializers/connect_token_secret.py:174 labels/models.py:11 +#: 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/variable.py:9 ops/serializers/job.py:20 +#: ops/serializers/variable.py:20 orgs/models.py:82 +#: perms/models/asset_permission.py:61 rbac/models/role.py:29 +#: rbac/serializers/role.py:28 settings/models.py:39 settings/models.py:188 +#: settings/serializers/msg.py:89 settings/serializers/terminal.py:9 +#: terminal/models/applet/applet.py:34 +#: terminal/models/component/endpoint.py:13 +#: terminal/models/component/endpoint.py:107 +#: terminal/models/component/storage.py:26 +#: terminal/models/component/task.py:13 +#: terminal/models/component/terminal.py:86 +#: terminal/models/virtualapp/provider.py:10 +#: terminal/models/virtualapp/virtualapp.py:19 tickets/api/ticket.py:87 +#: users/forms/profile.py:33 users/models/group.py:16 +#: users/models/preference.py:11 users/models/user/__init__.py:66 +#: xpack/plugins/cloud/models.py:35 xpack/plugins/cloud/models.py:315 +#: xpack/plugins/cloud/serializers/task.py:77 +msgid "Name" +msgstr "Tên" + +#: accounts/models/application.py:18 settings/serializers/auth/oauth2.py:25 +msgid "Logo" +msgstr "Biểu tượng" + +#: accounts/models/application.py:20 accounts/models/base.py:39 +#: accounts/models/mixins/vault.py:49 accounts/serializers/account/base.py:20 +#: authentication/models/temp_token.py:11 +#: authentication/templates/authentication/_access_key_modal.html:31 +#: settings/serializers/auth/radius.py:20 +msgid "Secret" +msgstr "Mật văn" + +#: accounts/models/application.py:21 acls/models/base.py:98 +#: assets/models/automations/base.py:22 assets/models/cmd_filter.py:38 +#: assets/serializers/asset/common.py:148 +#: assets/serializers/asset/common.py:423 perms/serializers/permission.py:66 +#: perms/serializers/user_permission.py:87 rbac/tree.py:36 rbac/tree.py:51 +msgid "Accounts" +msgstr "Tài khoản" + +#: accounts/models/application.py:22 authentication/models/access_key.py:21 +#: terminal/models/component/endpoint.py:108 +msgid "IP group" +msgstr "Nhóm IP" + +#: accounts/models/application.py:23 +#: authentication/backends/passkey/models.py:14 +#: authentication/models/access_key.py:25 +#: authentication/models/private_token.py:8 +#: authentication/models/ssh_key.py:20 +msgid "Date last used" +msgstr "Ngày sử dụng cuối cùng" + +#: accounts/models/application.py:24 acls/models/base.py:43 +#: assets/models/asset/common.py:182 authentication/models/access_key.py:24 +#: authentication/models/connection_token.py:59 +#: authentication/models/ssh_key.py:13 +#: authentication/serializers/ssh_key.py:23 +#: authentication/templates/authentication/_access_key_modal.html:32 +#: perms/models/asset_permission.py:82 +#: terminal/models/component/endpoint.py:30 +#: terminal/models/component/endpoint.py:118 +#: terminal/models/session/sharing.py:29 terminal/serializers/terminal.py:44 +#: tickets/const.py:37 +msgid "Active" +msgstr "Active" + +#: accounts/models/application.py:28 +msgid "Integration App" +msgstr "Ứng dụng tích hợp" + +#: accounts/models/automations/backup_account.py:27 +msgid "Backup type" +msgstr "Loại sao lưu" + +#: accounts/models/automations/backup_account.py:29 +#: accounts/models/automations/backup_account.py:30 +msgid "Password divided" +msgstr "Khóa có được chia thành hai phần trước và sau không" + +#: accounts/models/automations/backup_account.py:33 +#: accounts/serializers/automations/backup.py:35 +msgid "Recipient part one" +msgstr "Phần người nhận một" + +#: accounts/models/automations/backup_account.py:37 +#: accounts/serializers/automations/backup.py:39 +msgid "Recipient part two" +msgstr "Phần người nhận hai" + +#: accounts/models/automations/backup_account.py:41 +msgid "Object storage recipient part one" +msgstr "Máy chủ nhận một" + +#: accounts/models/automations/backup_account.py:45 +msgid "Object storage recipient part two" +msgstr "Máy chủ nhận hai" + +#: accounts/models/automations/backup_account.py:48 +msgid "Zip encrypt password" +msgstr "Passphrase" + +#: accounts/models/automations/backup_account.py:57 +msgid "Account backup plan" +msgstr "Kế hoạch sao lưu tài khoản" + +#: accounts/models/automations/base.py:18 +msgid "Account automation task" +msgstr "Nhiệm vụ tự động hóa tài khoản" + +#: accounts/models/automations/base.py:32 +msgid "Automation execution" +msgstr "Thực hiện tự động" + +#: accounts/models/automations/base.py:33 +msgid "Automation executions" +msgstr "Tự động hóa thực hiện" + +#: accounts/models/automations/base.py:35 +msgid "Can view change secret execution" +msgstr "Xem thực hiện đổi mật khẩu" + +#: accounts/models/automations/base.py:36 +msgid "Can add change secret execution" +msgstr "Tạo thực hiện đổi mật khẩu" + +#: accounts/models/automations/base.py:38 +msgid "Can view gather accounts execution" +msgstr "Xem thực hiện phát hiện tài khoản" + +#: accounts/models/automations/base.py:39 +msgid "Can add gather accounts execution" +msgstr "Tạo thực hiện phát hiện tài khoản" + +#: accounts/models/automations/base.py:41 +msgid "Can view push account execution" +msgstr "Xem thực hiện tài khoản đẩy" + +#: accounts/models/automations/base.py:42 +msgid "Can add push account execution" +msgstr "Tạo thực hiện tài khoản đẩy" + +#: accounts/models/automations/base.py:44 +msgid "Can view backup account execution" +msgstr "Có thể xem tình hình thực hiện tài khoản sao lưu" + +#: accounts/models/automations/base.py:45 +msgid "Can add backup account execution" +msgstr "Có thể thêm tài khoản sao lưu thực hiện" + +#: accounts/models/automations/base.py:63 +msgid "SSH key change strategy" +msgstr "Phương thức đẩy khóa SSH" + +#: accounts/models/automations/base.py:67 +msgid "Check connection after change" +msgstr "Kiểm tra kết nối sau khi thay đổi" + +#: accounts/models/automations/change_secret.py:17 +#: accounts/models/automations/check_account.py:19 +#: accounts/models/automations/gather_account.py:117 +#: accounts/serializers/automations/change_secret.py:61 +#: settings/serializers/auth/ldap.py:105 +#: settings/serializers/auth/ldap_ha.py:87 settings/serializers/msg.py:45 +msgid "Recipient" +msgstr "Recipients" + +#: accounts/models/automations/change_secret.py:24 +msgid "Change secret automation" +msgstr "Tự động hóa đổi mật khẩu" + +#: accounts/models/automations/change_secret.py:47 +#: assets/models/automations/base.py:145 ops/models/base.py:56 +#: ops/models/celery.py:90 ops/models/job.py:242 +#: terminal/models/applet/host.py:142 +msgid "Date finished" +msgstr "Ngày kết thúc" + +#: accounts/models/automations/change_secret.py:49 +#: accounts/models/automations/check_account.py:73 +#: accounts/models/automations/gather_account.py:26 +#: accounts/serializers/automations/check_account.py:39 +#: assets/models/automations/base.py:137 +#: assets/serializers/automations/base.py:45 audits/models.py:224 +#: 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/component/status.py:30 +#: terminal/models/virtualapp/virtualapp.py:99 +#: terminal/serializers/applet.py:19 terminal/serializers/applet_host.py:163 +#: terminal/serializers/virtualapp.py:36 tickets/models/ticket/general.py:284 +#: tickets/serializers/super_ticket.py:13 +#: tickets/serializers/ticket/ticket.py:20 xpack/plugins/cloud/models.py:232 +#: xpack/plugins/cloud/models.py:299 +msgid "Status" +msgstr "Trạng thái" + +#: accounts/models/automations/change_secret.py:51 +#: accounts/serializers/account/account.py:279 +#: accounts/templates/accounts/change_secret_failed_info.html:13 +#: assets/const/automation.py:9 +#: authentication/templates/authentication/passkey.html:177 +#: authentication/views/base.py:42 authentication/views/base.py:43 +#: authentication/views/base.py:44 common/const/choices.py:67 +#: settings/templates/ldap/_msg_import_ldap_user.html:26 +msgid "Error" +msgstr "Lỗi" + +#: accounts/models/automations/change_secret.py:73 +msgid "Old secret" +msgstr "Khóa cũ" + +#: accounts/models/automations/change_secret.py:74 +msgid "New secret" +msgstr "Khóa mới" + +#: accounts/models/automations/change_secret.py:75 +msgid "Ignore fail" +msgstr "Bỏ qua lỗi" + +#: accounts/models/automations/change_secret.py:78 +msgid "Change secret record" +msgstr "Lịch sử thay đổi khóa" + +#: accounts/models/automations/check_account.py:18 +msgid "Engines" +msgstr "Động cơ" + +#: accounts/models/automations/check_account.py:34 +msgid "account check automation" +msgstr "Tự động kiểm tra tài khoản" + +#: accounts/models/automations/check_account.py:36 +msgid "Can view check account execution" +msgstr "Có thể xem hoạt động tài khoản" + +#: accounts/models/automations/check_account.py:37 +msgid "Can add check account execution" +msgstr "Có thể thêm kiểm tra tình trạng hoạt động tài khoản" + +#: accounts/models/automations/check_account.py:43 +msgid "Long time no login" +msgstr "Chưa đăng nhập trong thời gian dài" + +#: accounts/models/automations/check_account.py:44 +msgid "New found" +msgstr "Phát hiện mới" + +#: accounts/models/automations/check_account.py:45 +msgid "Account deleted" +msgstr "Tài khoản đã bị xóa" + +#: accounts/models/automations/check_account.py:46 +msgid "Groups change" +msgstr "Thay đổi nhóm" + +#: accounts/models/automations/check_account.py:47 +msgid "Sudo changed" +msgstr "Thay đổi Sudo" + +#: accounts/models/automations/check_account.py:48 +msgid "Authorized keys changed" +msgstr "Thay đổi khóa" + +#: accounts/models/automations/check_account.py:49 +#: authentication/errors/const.py:23 +msgid "Password expired" +msgstr "Mật khẩu đã hết hạn" + +#: accounts/models/automations/check_account.py:50 +msgid "Long time no change" +msgstr "Thay đổi mật khẩu đã lâu" + +#: accounts/models/automations/check_account.py:52 +#: accounts/templates/accounts/check_account_report.html:38 +msgid "Weak password" +msgstr "Mật khẩu yếu" + +#: accounts/models/automations/check_account.py:53 +#: accounts/templates/accounts/check_account_report.html:45 +msgid "Leaked password" +msgstr "Rò rỉ mật khẩu" + +#: accounts/models/automations/check_account.py:54 +#: accounts/templates/accounts/check_account_report.html:52 +msgid "Repeated password" +msgstr "Mật khẩu trùng lặp" + +#: accounts/models/automations/check_account.py:61 +#: accounts/models/automations/gather_account.py:18 accounts/models/base.py:64 +#: accounts/serializers/account/virtual.py:21 +#: accounts/templates/accounts/change_secret_report.html:80 +#: accounts/templates/accounts/change_secret_report.html:120 +#: accounts/templates/accounts/gather_account_report.html:78 +#: accounts/templates/accounts/gather_account_report.html:118 +#: accounts/templates/accounts/push_account_report.html:79 +#: accounts/templates/accounts/push_account_report.html:119 +#: acls/serializers/base.py:19 acls/serializers/base.py:50 +#: audits/models.py:204 authentication/forms.py:21 authentication/forms.py:23 +#: authentication/models/temp_token.py:10 +#: authentication/serializers/connect_token_secret.py:43 +#: authentication/serializers/connect_token_secret.py:53 +#: authentication/templates/authentication/_msg_different_city.html:9 +#: authentication/templates/authentication/_msg_oauth_bind.html:9 +#: authentication/templates/authentication/login.html:414 +#: terminal/serializers/storage.py:136 users/forms/profile.py:32 +#: users/forms/profile.py:117 users/models/user/__init__.py:65 +#: users/serializers/profile.py:190 +#: users/templates/users/_msg_user_created.html:12 +#: xpack/plugins/cloud/serializers/account_attrs.py:41 +msgid "Username" +msgstr "Tên đăng nhập" + +#: accounts/models/automations/check_account.py:70 +#: accounts/serializers/automations/check_account.py:36 +msgid "Risk" +msgstr "Rủi ro" + +#: accounts/models/automations/check_account.py:75 +#: accounts/models/automations/gather_account.py:27 audits/models.py:157 +msgid "Detail" +msgstr "Chi tiết" + +#: accounts/models/automations/check_account.py:78 rbac/tree.py:52 +msgid "Account risk" +msgstr "Rủi ro tài khoản" + +#: accounts/models/automations/check_account.py:119 +msgid "Slug" +msgstr "" + +#: accounts/models/automations/check_account.py:125 +msgid "Check engine" +msgstr "Công cụ phát hiện" + +#: accounts/models/automations/check_account.py:133 +msgid "Check the discovered accounts" +msgstr "Kiểm tra các tài khoản được phát hiện" + +#: accounts/models/automations/check_account.py:135 +msgid "" +"Perform checks and analyses based on automatically discovered account " +"results, including user groups, public keys, sudoers, and other information." +msgstr "" +"Tiến hành kiểm tra và phân tích kết quả của các tài khoản được phát hiện tự " +"động, bao gồm nhóm người dùng, khóa công khai, sudoers và thông tin khác." + +#: accounts/models/automations/check_account.py:142 +msgid "Check the strength of your account and password" +msgstr "Kiểm tra độ mạnh của tài khoản và mật khẩu của bạn" + +#: accounts/models/automations/check_account.py:144 +msgid "" +"Perform checks and analyses based on the security of account passwords, " +"including password strength, leakage, etc." +msgstr "" +"Phân tích và kiểm tra tính an toàn của tài khoản và mật khẩu, bao gồm độ " +"mạnh của mật khẩu, tình trạng rò rỉ, v.v." + +#: accounts/models/automations/check_account.py:151 +msgid "Check if the account and password are repeated" +msgstr "Kiểm tra xem tài khoản và mật khẩu có bị trùng lặp không" + +#: accounts/models/automations/check_account.py:152 +msgid "Check if the account is the same as other accounts." +msgstr "Kiểm tra xem tài khoản này có giống với các tài khoản khác hay không." + +#: accounts/models/automations/check_account.py:157 +msgid "Check whether the account password is a common password" +msgstr "" +"Kiểm tra xem tài khoản và mật khẩu có phải là mật khẩu thông thường hay " +"không" + +#: accounts/models/automations/check_account.py:158 +msgid "Check whether the account password is a commonly leaked password." +msgstr "" +"Kiểm tra xem tài khoản và mật khẩu có phải là mật khẩu bị rò rỉ thông thường" +" hay không." + +#: accounts/models/automations/gather_account.py:19 +msgid "Address login" +msgstr "Địa chỉ đăng nhập cuối cùng" + +#: accounts/models/automations/gather_account.py:20 +msgid "Date login" +msgstr "Ngày đăng nhập cuối cùng" + +#: accounts/models/automations/gather_account.py:21 +msgid "Remote present" +msgstr "Có tồn tại từ xa" + +#: accounts/models/automations/gather_account.py:22 +msgid "Present" +msgstr "Tồn tại" + +#: accounts/models/automations/gather_account.py:23 +msgid "Date change password" +msgstr "Ngày thay đổi mật khẩu" + +#: accounts/models/automations/gather_account.py:24 +msgid "Date password expired" +msgstr "Ngày hết hạn mật khẩu" + +#: accounts/models/automations/gather_account.py:103 +msgid "Gather asset accounts" +msgstr "Phát hiện tài khoản" + +#: accounts/models/automations/gather_account.py:115 +msgid "Is sync account" +msgstr "Is sync account" + +#: accounts/models/automations/gather_account.py:118 +msgid "Check risk" +msgstr "Kiểm tra rủi ro" + +#: accounts/models/automations/gather_account.py:136 +msgid "Gather account automation" +msgstr "Phát hiện tài khoản tự động" + +#: accounts/models/automations/push_account.py:38 +msgid "Push asset account" +msgstr "Đẩy tài khoản" + +#: accounts/models/automations/push_account.py:43 +msgid "Push secret record" +msgstr "Ghi lại mật mã đã được đẩy" + +#: accounts/models/automations/verify_account.py:15 +msgid "Verify asset account" +msgstr "Xác thực tài khoản" + +#: accounts/models/base.py:37 accounts/models/base.py:66 +#: accounts/serializers/account/account.py:472 +#: accounts/serializers/account/base.py:17 +#: accounts/serializers/automations/change_secret.py:50 +#: authentication/serializers/connect_token_secret.py:42 +#: authentication/serializers/connect_token_secret.py:52 +#: terminal/serializers/storage.py:140 +msgid "Secret type" +msgstr "Loại mật mã." + +#: accounts/models/base.py:42 +#: accounts/serializers/automations/change_secret.py:43 +msgid "Secret strategy" +msgstr "" +"Chính sách mật văn < - SEP -> Quy tắc mật khẩu < - SEP -> Đẩy tự động < - " +"SEP -> Nền tảng < - SEP -> Tham số đẩy tài khoản < - SEP -> Mẫu tài khoản < " +"- SEP -> Có thể xem mật khẩu mẫu tài khoản tài sản < - SEP -> Tên gọi khác <" +" - SEP -> Giống như khi người dùng đăng nhập < - SEP -> Tài khoản ảo < - SEP" +" -> Tên người dùng giống như của người dùng < - SEP -> Nhập tay tên người " +"dùng/mật khẩu để kết nối với tài khoản khi đăng nhập < - SEP -> Khi đăng " +"nhập tài sản, tài khoản có tên người dùng giống như tên người dùng sử dụng <" +" - SEP -> Tài khoản không sử dụng tên người dùng và mật khẩu khi kết nối với" +" tài sản, chỉ hỗ trợ tài sản loại web và loại tùy chỉnh < - SEP -> Thông báo" +" kết quả nhiệm vụ sao lưu tài khoản." + +#: accounts/models/base.py:44 accounts/serializers/account/template.py:32 +#: accounts/serializers/automations/change_secret.py:49 +msgid "Password rules" +msgstr "Quy tắc mật khẩu" + +#: accounts/models/base.py:69 assets/models/automations/base.py:28 +#: assets/models/cmd_filter.py:39 assets/models/label.py:22 +#: authentication/serializers/connect_token_secret.py:121 +#: terminal/models/applet/applet.py:41 +#: terminal/models/virtualapp/virtualapp.py:23 users/serializers/user.py:257 +msgid "Is active" +msgstr "Active" + +#: accounts/models/template.py:18 +msgid "Auto push" +msgstr "Đẩy tự động" + +#: accounts/models/template.py:21 +msgid "Platforms" +msgstr "Nền tảng" + +#: accounts/models/template.py:23 +msgid "Push params" +msgstr "Tham số đẩy tài khoản" + +#: accounts/models/template.py:26 xpack/plugins/cloud/models.py:402 +msgid "Account template" +msgstr "Mẫu tài khoản" + +#: accounts/models/template.py:31 +msgid "Can view asset account template secret" +msgstr "Có thể xem mật khẩu mẫu tài khoản tài sản" + +#: accounts/models/virtual.py:13 +msgid "Alias" +msgstr "Biệt danh" + +#: accounts/models/virtual.py:14 +msgid "Secret from login" +msgstr "Giống như khi người dùng đăng nhập" + +#: accounts/models/virtual.py:18 +msgid "Virtual account" +msgstr "Tài khoản ảo" + +#: accounts/models/virtual.py:28 +msgid "Same with user" +msgstr "Tên người dùng giống với người sử dụng" + +#: accounts/models/virtual.py:37 +msgid "Non-asset account, Input username/password on connect" +msgstr "" +"Tài khoản kết nối bằng cách nhập tay tên người dùng/mật khẩu khi đăng nhập" + +#: accounts/models/virtual.py:38 +msgid "The account username name same with user on connect" +msgstr "" +"Khi đăng nhập tài sản, tài khoản tên người dùng giống với tên người dùng của" +" người sử dụng" + +#: accounts/models/virtual.py:39 +msgid "" +"Connect asset without using a username and password, and it only supports " +"web-based and custom-type assets" +msgstr "" +"Tài khoản kết nối tài sản không sử dụng tên người dùng và mật khẩu, chỉ hỗ " +"trợ tài sản loại web và loại tuỳ chỉnh" + +#: accounts/notifications.py:13 accounts/notifications.py:39 +msgid "Notification of account backup route task results" +msgstr "Thông báo kết quả nhiệm vụ sao lưu tài khoản." + +#: accounts/notifications.py:23 accounts/notifications.py:48 +msgid "" +"{} - The account backup passage task has been completed. See the attachment " +"for details" +msgstr "" +"{} - Nhiệm vụ sao lưu tài khoản đã hoàn tất, chi tiết xem trong tệp đính " +"kèm." + +#: accounts/notifications.py:26 +msgid "" +"{} - The account backup passage task has been completed: the encryption " +"password has not been set - please go to personal information -> Basic file " +"encryption password for preference settings" +msgstr "" +"{} - Nhiệm vụ sao lưu tài khoản đã hoàn tất: Chưa thiết lập mật khẩu mã hóa " +"- Vui lòng truy cập thông tin cá nhân -> Thiết lập ưa thích để thiết lập mật" +" khẩu mã hóa tệp." + +#: accounts/notifications.py:58 +msgid "Notification of implementation result of encryption change plan" +msgstr "Thông báo kết quả nhiệm vụ thay đổi mật khẩu." + +#: accounts/notifications.py:69 +msgid "" +"{} - The encryption change task has been completed. See the attachment for " +"details" +msgstr "" +"{} - Nhiệm vụ thay đổi mật khẩu đã hoàn tất, chi tiết xem trong tệp đính " +"kèm." + +#: accounts/notifications.py:73 +msgid "" +"{} - The encryption change task has been completed: the encryption password " +"has not been set - please go to personal information -> set encryption " +"password in preferences" +msgstr "" +"{} - Nhiệm vụ thay đổi mật khẩu đã hoàn tất: Chưa thiết lập mật khẩu mã hóa " +"- Vui lòng truy cập thông tin cá nhân -> Thiết lập ưa thích để thiết lập mật" +" khẩu mã hóa." + +#: accounts/notifications.py:86 +msgid "Gather account change information" +msgstr "Thông tin thay đổi tài khoản." + +#: accounts/notifications.py:108 +msgid "Change secret or push account failed information" +msgstr "Thông báo lỗi khi thay đổi mật khẩu hoặc đẩy tài khoản." + +#: accounts/risk_handlers.py:17 common/const/choices.py:115 +msgid "Ignored" +msgstr "Bỏ qua." + +#: accounts/risk_handlers.py:18 +msgid "Reopen" +msgstr "Mở lại." + +#: accounts/risk_handlers.py:19 audits/const.py:39 +#: authentication/templates/authentication/_access_key_modal.html:155 +#: authentication/templates/authentication/_mfa_confirm_modal.html:53 +#: templates/_modal.html:22 tickets/const.py:44 +msgid "Close" +msgstr "Đóng." + +#: accounts/risk_handlers.py:20 +msgid "Disable remote" +msgstr "Vô hiệu hóa từ xa." + +#: accounts/risk_handlers.py:21 accounts/risk_handlers.py:23 +msgid "Delete remote" +msgstr "Xóa từ xa." + +#: accounts/risk_handlers.py:22 +msgid "Delete account" +msgstr "Xóa tài khoản." + +#: accounts/risk_handlers.py:24 +#: accounts/templates/accounts/asset_account_change_info.html:10 +msgid "Add account" +msgstr "Thêm tài khoản." + +#: accounts/risk_handlers.py:25 +msgid "Change password and Add" +msgstr "Thay đổi mật khẩu và thêm." + +#: accounts/risk_handlers.py:127 +msgid "Execution failed: {}" +msgstr "Thực thi không thành công: {}" + +#: accounts/serializers/account/account.py:31 +msgid "Push now" +msgstr "Gửi ngay" + +#: accounts/serializers/account/account.py:36 +msgid "Params" +msgstr "Tham số" + +#: accounts/serializers/account/account.py:40 +msgid "Exist policy" +msgstr "Tài khoản đã tồn tại chính sách" + +#: accounts/serializers/account/account.py:206 assets/models/label.py:21 +#: assets/models/platform.py:95 assets/serializers/asset/common.py:145 +#: assets/serializers/cagegory.py:12 assets/serializers/platform.py:173 +#: assets/serializers/platform.py:284 perms/serializers/user_permission.py:27 +#: settings/models.py:41 tickets/models/ticket/apply_application.py:13 +#: users/models/preference.py:12 xpack/plugins/cloud/models.py:41 +#: xpack/plugins/cloud/models.py:326 +#: xpack/plugins/cloud/serializers/account.py:83 +msgid "Category" +msgstr "Thể loại" + +#: accounts/serializers/account/account.py:207 acls/models/command_acl.py:24 +#: acls/serializers/command_acl.py:19 assets/models/automations/base.py:27 +#: assets/models/automations/base.py:146 assets/models/cmd_filter.py:74 +#: assets/models/platform.py:96 assets/serializers/asset/common.py:146 +#: assets/serializers/platform.py:160 assets/serializers/platform.py:172 +#: audits/serializers.py:76 audits/serializers.py:196 +#: authentication/models/connection_token.py:66 +#: authentication/serializers/connect_token_secret.py:130 +#: 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/component/storage.py:152 terminal/serializers/applet.py:30 +#: terminal/serializers/session.py:33 terminal/serializers/storage.py:281 +#: terminal/serializers/storage.py:294 tickets/models/comment.py:26 +#: tickets/models/flow.py:43 tickets/models/ticket/apply_application.py:16 +#: tickets/models/ticket/general.py:276 tickets/serializers/flow.py:25 +#: tickets/serializers/ticket/ticket.py:19 +msgid "Type" +msgstr "Loại" + +#: accounts/serializers/account/account.py:223 +msgid "Asset not found" +msgstr "Tài sản không tồn tại" + +#: accounts/serializers/account/account.py:236 assets/const/category.py:15 +#: assets/models/asset/common.py:180 assets/models/asset/ds.py:14 +#: assets/serializers/asset/common.py:180 +msgid "Directory service" +msgstr "Dịch vụ thư mục" + +#: accounts/serializers/account/account.py:268 +msgid "Has secret" +msgstr "Đã quản lý mật khẩu" + +#: accounts/serializers/account/account.py:278 ops/models/celery.py:84 +#: tickets/models/comment.py:13 tickets/models/ticket/general.py:49 +#: tickets/models/ticket/general.py:280 tickets/serializers/super_ticket.py:14 +msgid "State" +msgstr "Trạng thái" + +#: accounts/serializers/account/account.py:280 +msgid "Changed" +msgstr "Đã sửa đổi" + +#: accounts/serializers/account/account.py:290 acls/models/base.py:97 +#: acls/templates/acls/asset_login_reminder.html:9 +#: assets/models/automations/base.py:25 +#: assets/serializers/automations/base.py:20 assets/serializers/domain.py:33 +#: assets/serializers/platform.py:181 assets/serializers/platform.py:213 +#: authentication/api/connection_token.py:463 ops/models/base.py:17 +#: ops/models/job.py:157 ops/serializers/job.py:21 +#: perms/serializers/permission.py:57 +#: terminal/templates/terminal/_msg_command_execute_alert.html:16 +#: xpack/plugins/cloud/manager.py:101 +msgid "Assets" +msgstr "Tài sản" + +#: accounts/serializers/account/account.py:395 +msgid "Asset does not support this secret type: %s" +msgstr "Tài sản không hỗ trợ loại tài khoản: %s" + +#: accounts/serializers/account/account.py:427 +msgid "Account has exist" +msgstr "Tài khoản đã tồn tại" + +#: accounts/serializers/account/account.py:464 +#: accounts/serializers/account/base.py:86 +#: assets/serializers/asset/common.py:424 +msgid "Spec info" +msgstr "Thông tin đặc biệt" + +#: accounts/serializers/account/account.py:473 +#: authentication/serializers/connect_token_secret.py:164 +#: authentication/templates/authentication/_access_key_modal.html:30 +#: perms/models/perm_node.py:21 users/serializers/group.py:33 +msgid "ID" +msgstr "ID" + +#: accounts/serializers/account/account.py:483 acls/serializers/base.py:125 +#: acls/templates/acls/asset_login_reminder.html:8 +#: acls/templates/acls/user_login_reminder.html:8 +#: assets/models/cmd_filter.py:24 assets/models/label.py:16 +#: audits/models.py:55 audits/models.py:97 audits/models.py:179 +#: audits/models.py:296 audits/serializers.py:197 +#: authentication/models/connection_token.py:37 +#: authentication/models/ssh_key.py:22 authentication/models/sso_token.py:16 +#: notifications/models/notification.py:12 +#: perms/api/user_permission/mixin.py:58 perms/models/asset_permission.py:63 +#: rbac/builtin.py:133 rbac/models/rolebinding.py:49 +#: rbac/serializers/rolebinding.py:17 terminal/backends/command/models.py:16 +#: terminal/models/session/session.py:27 terminal/models/session/sharing.py:34 +#: terminal/notifications.py:157 terminal/notifications.py:217 +#: terminal/serializers/command.py:16 +#: terminal/templates/terminal/_msg_command_warning.html:6 +#: terminal/templates/terminal/_msg_session_sharing.html:6 +#: tickets/models/comment.py:21 tickets/serializers/flow.py:15 +#: users/const.py:14 users/models/user/__init__.py:294 +#: users/models/user/__init__.py:321 +msgid "User" +msgstr "Người dùng" + +#: accounts/serializers/account/account.py:484 +#: authentication/templates/authentication/_access_key_modal.html:33 +#: terminal/notifications.py:159 terminal/notifications.py:219 +msgid "Date" +msgstr "Ngày" + +#: accounts/serializers/account/base.py:33 terminal/serializers/storage.py:149 +msgid "Passphrase" +msgstr "Mật khẩu khóa" + +#: accounts/serializers/account/base.py:89 +msgid "" +"* If no username is required for authentication, enter null. For AD " +"accounts, use the format username@domain." +msgstr "" +"Ghi chú: Nếu không cần tên người dùng trong xác thực, có thể điền là null, " +"nếu là tài khoản AD, định dạng là username@domain" + +#: accounts/serializers/account/service.py:15 +#: authentication/serializers/token.py:22 +msgid "Access IP" +msgstr "Danh sách trắng IP" + +#: accounts/serializers/account/service.py:28 +#: accounts/serializers/account/virtual.py:19 assets/models/cmd_filter.py:40 +#: assets/models/cmd_filter.py:88 common/db/models.py:36 +#: ops/models/adhoc.py:25 ops/models/job.py:165 ops/models/playbook.py:31 +#: rbac/models/role.py:37 settings/models.py:44 +#: terminal/models/applet/applet.py:46 terminal/models/applet/applet.py:375 +#: terminal/models/applet/host.py:143 terminal/models/component/endpoint.py:29 +#: terminal/models/component/endpoint.py:117 +#: terminal/models/session/session.py:44 +#: terminal/models/virtualapp/virtualapp.py:28 tickets/models/comment.py:32 +#: tickets/models/ticket/general.py:298 users/models/user/__init__.py:100 +#: xpack/plugins/cloud/models.py:45 xpack/plugins/cloud/models.py:129 +msgid "Comment" +msgstr "Description" + +#: accounts/serializers/account/service.py:30 +#: accounts/templates/accounts/backup_account_report.html:33 +#: assets/serializers/asset/common.py:152 +msgid "Accounts amount" +msgstr "Số lượng tài khoản" + +#: accounts/serializers/account/template.py:11 +msgid "Password length" +msgstr "Chiều dài mật khẩu" + +#: accounts/serializers/account/template.py:12 +#: settings/serializers/security.py:51 +msgid "Lowercase" +msgstr "Chữ cái thường" + +#: accounts/serializers/account/template.py:13 +#: settings/serializers/security.py:48 +msgid "Uppercase" +msgstr "Chữ cái hoa" + +#: accounts/serializers/account/template.py:14 +msgid "Digit" +msgstr "Số" + +#: accounts/serializers/account/template.py:15 +msgid "Special symbol" +msgstr "Ký tự đặc biệt" + +#: accounts/serializers/account/template.py:17 +msgid "Exclude symbol" +msgstr "Ký tự loại trừ" + +#: accounts/serializers/account/template.py:22 +msgid "" +"length is the length of the password, and the range is 8 to 30.\n" +"lowercase indicates whether the password contains lowercase letters, \n" +"uppercase indicates whether it contains uppercase letters,\n" +"digit indicates whether it contains numbers, and symbol indicates whether it contains special symbols.\n" +"exclude_symbols is used to exclude specific symbols. You can fill in the symbol characters to be excluded (up to 16). \n" +"If you do not need to exclude symbols, you can leave it blank.\n" +"default: {\"length\": 16, \"lowercase\": true, \"uppercase\": true, \"digit\": true, \"symbol\": true, \"exclude_symbols\": \"\"}" +msgstr "" +"length là chiều dài của mật khẩu, điền trong khoảng từ 8 đến 30. lowercase " +"cho biết mật khẩu có chứa chữ cái thường hay không, uppercase cho biết có " +"chứa chữ cái hoa hay không, digit cho biết có chứa số hay không, symbol cho " +"biết có chứa ký tự đặc biệt hay không. exclude_symbols dùng để loại trừ các " +"ký hiệu cụ thể, bạn có thể điền các ký hiệu muốn loại trừ (tối đa 16 ký " +"hiệu), nếu không cần loại trừ ký hiệu, có thể để trống. Mặc định: " +"{\"length\": 16, \"lowercase\": true, \"uppercase\": true, \"digit\": true, " +"\"symbol\": true, \"exclude_symbols\": \"\"}" + +#: accounts/serializers/account/template.py:47 +msgid "Secret generation strategy for account creation" +msgstr "" +"Chiến lược tạo mật khẩu, dùng để thiết lập mật khẩu khi tạo tài khoản." + +#: accounts/serializers/account/template.py:48 +msgid "Whether to automatically push the account to the asset" +msgstr "Có tự động đẩy tài khoản đến nền tảng liên kết" + +#: accounts/serializers/account/template.py:51 +msgid "" +"Associated platform, you can configure push parameters. If not associated, " +"default parameters will be used" +msgstr "" +"Có thể cấu hình tham số đẩy, nếu không liên kết, sẽ sử dụng tham số mặc định" + +#: accounts/serializers/account/virtual.py:24 +msgid "" +"Current only support login from AD/LDAP. Secret priority: Same account in " +"asset secret > Login secret > Manual input.
For security, please set " +"config CACHE_LOGIN_PASSWORD_ENABLED to true" +msgstr "" +"Hiện tại chỉ hỗ trợ người dùng đăng nhập qua AD/LDAP. Thứ tự hiệu lực của " +"mật khẩu tài khoản trùng tên: Mật khẩu tài khoản trùng tên trên tài sản > " +"Mật khẩu đăng nhập > Nhập tay
Để đảm bảo an toàn, vui lòng thiết lập " +"mục cấu hình CACHE_LOGIN_PASSWORD_ENABLED=true, khởi động lại dịch vụ để " +"kích hoạt" + +#: accounts/serializers/automations/backup.py:19 +msgid "Zip Encrypt Password" +msgstr "Mật khẩu mã hóa tệp" + +#: accounts/serializers/automations/backup.py:36 +#: accounts/serializers/automations/backup.py:40 +#: accounts/serializers/automations/change_secret.py:62 +msgid "Currently only mail sending is supported" +msgstr "Hiện tại chỉ hỗ trợ gửi qua email" + +#: accounts/serializers/automations/backup.py:42 +msgid "Asset type" +msgstr "Loại tài sản" + +#: accounts/serializers/automations/base.py:22 +msgid "Name already exists" +msgstr "Tên đã tồn tại" + +#: accounts/serializers/automations/base.py:31 +#: assets/models/automations/base.py:149 +#: assets/serializers/automations/base.py:43 +msgid "Automation snapshot" +msgstr "Chụp nhanh tự động" + +#: accounts/serializers/automations/change_secret.py:46 +msgid "SSH Key strategy" +msgstr "Cách thay đổi khóa SSH" + +#: accounts/serializers/automations/change_secret.py:60 +msgid "Please enter your account username" +msgstr "Vui lòng nhập tên người dùng tài khoản của bạn" + +#: accounts/serializers/automations/change_secret.py:64 +msgid "Notification before execution" +msgstr "Thông báo trước khi thực hiện" + +#: accounts/serializers/automations/change_secret.py:66 +msgid "" +"Secret parameter settings, currently only effective for assets of the host " +"type." +msgstr "" +"Cài đặt tham số, hiện chỉ có hiệu lực đối với loại tài sản AIX, LINUX, UNIX." + +#: accounts/serializers/automations/change_secret.py:88 +msgid "* Please enter the correct password length" +msgstr "* Vui lòng nhập độ dài mật khẩu chính xác" + +#: accounts/serializers/automations/change_secret.py:92 +msgid "* Password length range 8-36 bits" +msgstr "* Độ dài mật khẩu trong khoảng 8-36 ký tự" + +#: accounts/serializers/automations/change_secret.py:114 +#: accounts/serializers/automations/change_secret.py:149 +#: ops/serializers/job.py:93 terminal/serializers/session.py:62 +msgid "Is success" +msgstr "Is success" + +#: accounts/serializers/automations/change_secret.py:121 +#: assets/models/automations/base.py:165 +msgid "Automation task execution" +msgstr "Lịch sử thực hiện tác vụ tự động." + +#: accounts/serializers/automations/change_secret.py:190 +msgid "TTL" +msgstr "TTL" + +#: accounts/serializers/automations/change_secret.py:191 +#: assets/models/platform.py:97 tickets/models/ticket/general.py:301 +msgid "Meta" +msgstr "Siêu dữ liệu" + +#: accounts/serializers/automations/check_account.py:106 +msgid "Invalid engine id" +msgstr "ID động cơ không hợp lệ" + +#: accounts/serializers/automations/gather_account.py:31 +msgid "Whether to check the risk of the discovered accounts." +msgstr "Có tiến hành kiểm tra rủi ro cho tài khoản tập trung không." + +# msgid "Success" +# msgstr "" +#: accounts/signal_handlers.py:43 +msgid "Push related accounts to assets: %s, by system" +msgstr "Đưa tài khoản vào tài sản: %s, do hệ thống thực hiện" + +#: accounts/signal_handlers.py:52 +msgid "Add account: %s" +msgstr "Thêm tài khoản: %s" + +#: accounts/signal_handlers.py:54 +msgid "Delete account: %s" +msgstr "Xóa tài khoản: %s" + +#: accounts/tasks/automation.py:33 +msgid "Account execute automation" +msgstr "Tài khoản thực hiện hành động tự động" + +#: accounts/tasks/automation.py:36 +msgid "" +"Unified execution entry for account automation tasks: when the system performs tasks \n" +" such as account push, password change, account verification, account collection, \n" +" and gateway account verification, all tasks are executed through this unified entry" +msgstr "" +"Cổng vào thực hiện nhiệm vụ tự động hóa tài khoản được thống nhất, khi hệ " +"thống thực hiện việc đưa tài khoản vào, thay đổi mật khẩu, xác minh tài " +"khoản, thu thập tài khoản và xác minh nhiệm vụ tài khoản cổng, tất cả được " +"thực hiện thông qua nhiệm vụ hiện tại" + +#: accounts/tasks/automation.py:65 accounts/tasks/automation.py:73 +msgid "Execute automation record" +msgstr "Ghi chép thực hiện tự động" + +#: accounts/tasks/automation.py:68 +msgid "When manually executing password change records, this task is used" +msgstr "" +"Khi ghi lại việc thay đổi mật khẩu được thực hiện thủ công, nó sẽ thông qua " +"nhiệm vụ này" + +#: accounts/tasks/automation.py:116 +msgid "Clean change secret and push record period" +msgstr "Dọn dẹp theo chu kỳ ghi chép thay đổi mật khẩu và ghi chép đẩy" + +#: accounts/tasks/automation.py:118 +msgid "" +"The system will periodically clean up unnecessary password change and push records, \n" +" including their associated change tasks, execution logs, assets, and accounts. When any \n" +" of these associated items are deleted, the corresponding password change and push records \n" +" become invalid. Therefore, to maintain a clean and efficient database, the system will \n" +" clean up expired records at 2 a.m daily, based on the interval specified by \n" +" PERM_EXPIRED_CHECK_PERIODIC in the config.txt configuration file. This periodic cleanup \n" +" mechanism helps free up storage space and enhances the security and overall performance \n" +" of data management" +msgstr "" +"Hệ thống sẽ định kỳ dọn dẹp những ghi chép thay đổi mật khẩu và ghi chép đẩy" +" không còn cần thiết, bao gồm những nhiệm vụ thay đổi mật khẩu liên quan, " +"ghi chép thực hiện, tài sản và tài khoản. Khi bất kỳ một trong những mục " +"liên quan này bị xóa, các ghi chép thay đổi mật khẩu và ghi chép đẩy tương " +"ứng sẽ trở nên vô hiệu. Do đó, để giữ cho cơ sở dữ liệu gọn gàng và hoạt " +"động hiệu quả, theo khoảng thời gian cấu hình trong file config.txt tại " +"PERM_EXPIRED_CHECK_PERIODIC, sẽ tiến hành dọn dẹp những nội dung hết thời " +"gian vào lúc 2 giờ sáng mỗi ngày. Cơ chế dọn dẹp định kỳ này không chỉ giúp " +"giải phóng không gian lưu trữ mà còn nâng cao sự an toàn trong quản lý dữ " +"liệu và hiệu suất tổng thể" + +#: accounts/tasks/push_account.py:40 accounts/tasks/push_account.py:54 +msgid "Push accounts to assets" +msgstr "Đưa tài khoản vào tài sản" + +#: accounts/tasks/push_account.py:43 +msgid "" +"Whenever an account is created or modified and needs pushing to assets, run " +"this task" +msgstr "" +"Mỗi khi tạo hoặc sửa đổi tài khoản và cần đưa vào tài sản, hãy chạy nhiệm vụ" +" này." + +#: accounts/tasks/push_account.py:62 accounts/tasks/push_account.py:104 +msgid "Change secret accounts to assets" +msgstr "Tài khoản thay đổi mật khẩu được gửi đến tài sản" + +#: accounts/tasks/push_account.py:65 +msgid "" +"When a secret on an account changes and needs pushing to assets, run this " +"task" +msgstr "" +"Khi thay đổi mật khẩu tài khoản và gửi đến tài sản, thực hiện nhiệm vụ này" + +#: accounts/tasks/remove_account.py:28 +msgid "" +"When clicking \"Sync deletion\" in 'Console - Gather Account - Gathered accounts' this \n" +" task will be executed" +msgstr "" +"Trong bảng điều khiển - Thu thập tài khoản - Nhấp chuột vào đồng bộ xóa " +"trong tài khoản đã thu thập, nhiệm vụ này sẽ được thực hiện" + +#: accounts/tasks/remove_account.py:50 +msgid "Clean historical accounts" +msgstr "Dọn dẹp tài khoản lịch sử" + +#: accounts/tasks/remove_account.py:52 +msgid "" +"Each time an asset account is updated, a historical account is generated, so it is \n" +" necessary to clean up the asset account history. The system will clean up excess account \n" +" records at 2 a.m. daily based on the configuration in the \"System settings - Features - \n" +" Account storage - Record limit" +msgstr "" +"Vì mỗi lần cập nhật tài khoản tài sản, sẽ tạo ra tài khoản lịch sử, nên cần " +"dọn dẹp lịch sử tài khoản của tài sản. Hệ thống sẽ dựa trên cấu hình giới " +"hạn ghi chép lưu trữ tài khoản - mỗi ngày vào lúc 2 giờ sáng sẽ dọn dẹp các " +"bản ghi tài khoản vượt quá số lượng quy định" + +#: accounts/tasks/remove_account.py:89 +msgid "Remove historical accounts that are out of range." +msgstr "Xóa các tài khoản lịch sử vượt quá giới hạn." + +#: accounts/tasks/template.py:11 +msgid "Template sync info to related accounts" +msgstr "Đồng bộ thông tin đến tài khoản liên quan" + +#: accounts/tasks/template.py:14 +msgid "" +"When clicking 'Sync new secret to accounts' in 'Console - Account - Templates - \n" +" Accounts' this task will be executed" +msgstr "" +"Khi trong bảng điều khiển - Mẫu tài khoản - Tài khoản - Nhấp vào đồng bộ để " +"cập nhật thông tin tài khoản, thực hiện nhiệm vụ này" + +#: accounts/tasks/vault.py:33 +msgid "Sync secret to vault" +msgstr "Đồng bộ mật mã đến vault" + +#: accounts/tasks/vault.py:35 +msgid "" +"When clicking 'Sync' in 'System Settings - Features - Account Storage' this " +"task will be executed" +msgstr "" +"Tại cài đặt hệ thống - Cài đặt chức năng - Nhấp vào đồng bộ lưu trữ tài " +"khoản, thực hiện nhiệm vụ này" + +#: accounts/tasks/verify_account.py:49 +msgid "Verify asset account availability" +msgstr "Xác thực khả năng sử dụng tài khoản tài sản" + +#: accounts/tasks/verify_account.py:52 +msgid "" +"When clicking 'Test' in 'Console - Asset details - Accounts' this task will " +"be executed" +msgstr "" +"Khi trong bảng điều khiển - Chi tiết tài sản - Nhấp chuột vào tài khoản để " +"kiểm tra, thực hiện nhiệm vụ này" + +#: accounts/tasks/verify_account.py:58 +msgid "Verify accounts connectivity" +msgstr "Kiểm tra khả năng kết nối của tài khoản" + +#: accounts/templates/accounts/asset_account_change_info.html:13 +msgid "Deleted account" +msgstr "Xóa tài khoản" + +#: accounts/templates/accounts/backup_account_report.html:13 +#: accounts/templates/accounts/change_secret_report.html:13 +#: accounts/templates/accounts/check_account_report.html:13 +#: accounts/templates/accounts/gather_account_report.html:11 +#: accounts/templates/accounts/push_account_report.html:12 +msgid "Basic Information" +msgstr "Thông tin cơ bản." + +#: accounts/templates/accounts/backup_account_report.html:18 +#: accounts/templates/accounts/change_secret_failed_info.html:3 +#: accounts/templates/accounts/change_secret_report.html:18 +#: accounts/templates/accounts/check_account_report.html:18 +#: accounts/templates/accounts/gather_account_report.html:16 +#: accounts/templates/accounts/push_account_report.html:17 +#: terminal/serializers/task.py:10 +msgid "Task name" +msgstr "Tên nhiệm vụ" + +#: accounts/templates/accounts/backup_account_report.html:23 +#: accounts/templates/accounts/change_secret_report.html:23 +#: accounts/templates/accounts/check_account_report.html:23 +#: accounts/templates/accounts/gather_account_report.html:21 +#: accounts/templates/accounts/push_account_report.html:22 +#: assets/models/automations/base.py:143 audits/models.py:66 +#: ops/models/base.py:55 ops/models/celery.py:89 ops/models/job.py:241 +#: ops/templates/ops/celery_task_log.html:101 +#: perms/models/asset_permission.py:78 settings/serializers/feature.py:29 +#: settings/templates/ldap/_msg_import_ldap_user.html:5 +#: terminal/models/applet/host.py:141 terminal/models/session/session.py:42 +#: tickets/models/ticket/apply_application.py:30 +#: tickets/models/ticket/apply_asset.py:20 +msgid "Date start" +msgstr "Ngày bắt đầu" + +#: accounts/templates/accounts/backup_account_report.html:28 +#: accounts/templates/accounts/change_secret_report.html:28 +#: accounts/templates/accounts/check_account_report.html:28 +#: accounts/templates/accounts/gather_account_report.html:26 +#: accounts/templates/accounts/push_account_report.html:27 +#: settings/serializers/feature.py:30 +#: settings/templates/ldap/_msg_import_ldap_user.html:6 +#: terminal/models/session/session.py:43 +msgid "Date end" +msgstr "Ngày kết thúc" + +#: accounts/templates/accounts/backup_account_report.html:38 +#: accounts/templates/accounts/change_secret_report.html:53 +#: accounts/templates/accounts/check_account_report.html:66 +#: accounts/templates/accounts/gather_account_report.html:51 +#: accounts/templates/accounts/push_account_report.html:52 +msgid "Time using" +msgstr "Thời gian tiêu tốn" + +#: accounts/templates/accounts/backup_account_report.html:43 +msgid "Type count" +msgstr "Số loại" + +#: accounts/templates/accounts/change_secret_failed_info.html:4 +msgid "Task execution id" +msgstr "ID thực hiện nhiệm vụ" + +#: accounts/templates/accounts/change_secret_failed_info.html:5 +msgid "Respectful" +msgstr "Kính gửi" + +#: accounts/templates/accounts/change_secret_failed_info.html:6 +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 "" +"Chào bạn! Dưới đây là tình huống về việc thay đổi mật khẩu tài sản hoặc thất" +" bại khi đẩy tài khoản. Vui lòng kiểm tra và xử lý kịp thời." + +#: accounts/templates/accounts/change_secret_report.html:33 +#: accounts/templates/accounts/gather_account_report.html:31 +#: accounts/templates/accounts/push_account_report.html:32 +#: assets/serializers/domain.py:23 assets/serializers/platform.py:182 +#: orgs/serializers.py:13 perms/serializers/permission.py:61 +msgid "Assets amount" +msgstr "Số lượng tài sản" + +#: accounts/templates/accounts/change_secret_report.html:38 +#: accounts/templates/accounts/gather_account_report.html:36 +#: accounts/templates/accounts/push_account_report.html:37 +msgid "Asset success count" +msgstr "Số tài sản thành công" + +#: accounts/templates/accounts/change_secret_report.html:43 +#: accounts/templates/accounts/gather_account_report.html:41 +#: accounts/templates/accounts/push_account_report.html:42 +msgid "Asset failed count" +msgstr "Số tài sản thất bại" + +#: accounts/templates/accounts/change_secret_report.html:48 +#: accounts/templates/accounts/gather_account_report.html:46 +#: accounts/templates/accounts/push_account_report.html:47 +msgid "Asset not support count" +msgstr "Số tài sản không hỗ trợ" + +#: accounts/templates/accounts/change_secret_report.html:67 +#: accounts/templates/accounts/push_account_report.html:66 +msgid "Success accounts" +msgstr "Tài khoản thành công" + +#: accounts/templates/accounts/change_secret_report.html:78 +#: accounts/templates/accounts/change_secret_report.html:118 +#: accounts/templates/accounts/push_account_report.html:77 +#: accounts/templates/accounts/push_account_report.html:117 +#: audits/handler.py:128 +msgid "No" +msgstr "Không" + +#: accounts/templates/accounts/change_secret_report.html:94 +#: accounts/templates/accounts/change_secret_report.html:134 +#: accounts/templates/accounts/gather_account_report.html:92 +#: accounts/templates/accounts/push_account_report.html:93 +#: accounts/templates/accounts/push_account_report.html:133 +msgid "No new accounts found" +msgstr "Không tìm thấy tài khoản mới" + +#: accounts/templates/accounts/change_secret_report.html:107 +#: accounts/templates/accounts/push_account_report.html:106 +msgid "Failed accounts" +msgstr "Tài khoản thất bại" + +#: accounts/templates/accounts/check_account_report.html:33 +#: terminal/const.py:47 terminal/const.py:86 +#: users/templates/users/reset_password.html:54 +msgid "Normal" +msgstr "Bình thường" + +#: accounts/templates/accounts/check_account_report.html:59 +msgid "No secret" +msgstr "Không có mật khẩu" + +#: accounts/templates/accounts/gather_account_report.html:65 +msgid "New found accounts" +msgstr "Tài khoản mới phát hiện" + +#: accounts/templates/accounts/gather_account_report.html:105 +msgid "Lost accounts" +msgstr "Tài khoản bị mất" + +#: accounts/templates/accounts/gather_account_report.html:132 +msgid "No lost accounts found" +msgstr "Không tìm thấy tài khoản bị mất" + +#: accounts/utils.py:55 +msgid "" +"If the password starts with {{` and ends with }} `, then the password is not" +" allowed." +msgstr "" +"Nếu mật khẩu bắt đầu bằng `{{` và kết thúc bằng `}}`, thì mật khẩu đó không " +"được phép." + +#: accounts/utils.py:63 +msgid "private key invalid or passphrase error" +msgstr "Khóa không hợp lệ hoặc mật khẩu của khóa sai" + +#: acls/apps.py:7 +msgid "App Acls" +msgstr "ACLs" + +#: acls/const.py:6 audits/const.py:37 terminal/const.py:11 tickets/const.py:45 +#: tickets/templates/tickets/approve_check_password.html:47 +msgid "Reject" +msgstr "Từ chối" + +#: acls/const.py:7 audits/const.py:34 terminal/const.py:9 +msgid "Accept" +msgstr "Chấp nhận" + +#: acls/const.py:8 audits/const.py:35 +msgid "Review" +msgstr "Phê duyệt" + +#: acls/const.py:9 +msgid "Warn" +msgstr "Cảnh báo" + +#: acls/const.py:10 +msgid "Notify" +msgstr "Thông báo" + +#: acls/const.py:11 +msgid "Prompt and warn" +msgstr "Gợi ý và cảnh báo" + +#: acls/const.py:12 +msgid "Face verify" +msgstr "Xác thực khuôn mặt" + +#: acls/const.py:13 +msgid "Face online" +msgstr "Nhận diện khuôn mặt trực tuyến" + +#: acls/const.py:14 +msgid "Secret rotation" +msgstr "Thay đổi mật khẩu" + +#: acls/models/base.py:37 assets/models/cmd_filter.py:76 +#: terminal/models/component/endpoint.py:110 xpack/plugins/cloud/models.py:321 +msgid "Priority" +msgstr "Độ ưu tiên" + +#: acls/models/base.py:38 assets/models/cmd_filter.py:76 +#: terminal/models/component/endpoint.py:111 xpack/plugins/cloud/models.py:322 +msgid "1-100, the lower the value will be match first" +msgstr "" +"Độ ưu tiên có thể chọn trong khoảng 1-100 (giá trị càng nhỏ càng được ưu " +"tiên)" + +#: acls/models/base.py:41 acls/serializers/base.py:57 +#: assets/models/cmd_filter.py:81 audits/models.py:99 +#: audits/serializers.py:107 +#: authentication/serializers/connect_token_secret.py:123 +#: authentication/templates/authentication/_access_key_modal.html:34 +#: perms/serializers/permission.py:63 perms/serializers/permission.py:85 +#: terminal/backends/command/models.py:24 +#: tickets/serializers/ticket/ticket.py:21 +msgid "Action" +msgstr "Action" + +#: acls/models/base.py:42 assets/models/cmd_filter.py:86 +#: authentication/serializers/connect_token_secret.py:93 +msgid "Reviewers" +msgstr "Người phê duyệt" + +#: acls/models/base.py:81 perms/serializers/permission.py:53 +#: tickets/models/flow.py:23 users/models/preference.py:16 +#: users/serializers/group.py:21 users/serializers/user.py:420 +msgid "Users" +msgstr "Người dùng" + +#: acls/models/command_acl.py:16 assets/models/cmd_filter.py:60 +#: ops/serializers/job.py:92 terminal/const.py:88 +#: terminal/models/session/session.py:40 terminal/serializers/command.py:18 +#: terminal/templates/terminal/_msg_command_alert.html:12 +#: terminal/templates/terminal/_msg_command_execute_alert.html:10 +#: terminal/templates/terminal/_msg_command_warning.html:23 +msgid "Command" +msgstr "Lệnh" + +#: acls/models/command_acl.py:17 assets/models/cmd_filter.py:59 +#: xpack/plugins/cloud/models.py:368 +msgid "Regex" +msgstr "Biểu thức chính quy" + +#: acls/models/command_acl.py:26 assets/models/cmd_filter.py:79 +#: settings/models.py:189 settings/serializers/feature.py:24 +#: settings/serializers/msg.py:78 xpack/plugins/license/models.py:31 +msgid "Content" +msgstr "Nội dung" + +#: acls/models/command_acl.py:26 assets/models/cmd_filter.py:79 +msgid "One command per line" +msgstr "Mỗi dòng là một lệnh" + +#: acls/models/command_acl.py:27 assets/models/cmd_filter.py:80 +msgid "Ignore case" +msgstr "Bỏ qua chữ hoa chữ thường" + +#: acls/models/command_acl.py:33 acls/models/command_acl.py:97 +#: acls/serializers/command_acl.py:29 +#: authentication/serializers/connect_token_secret.py:90 +#: terminal/templates/terminal/_msg_command_warning.html:14 +msgid "Command group" +msgstr "Nhóm lệnh" + +#: acls/models/command_acl.py:86 +msgid "The generated regular expression is incorrect: {}" +msgstr "Biểu thức chính quy sinh ra có lỗi" + +#: acls/models/command_acl.py:103 +#: terminal/templates/terminal/_msg_command_warning.html:12 +msgid "Command acl" +msgstr "Lọc lệnh" + +#: acls/models/command_acl.py:111 tickets/const.py:12 +msgid "Command confirm" +msgstr "Lệnh kiểm tra" + +#: acls/models/connect_method.py:10 +msgid "Connect methods" +msgstr "Phương thức kết nối" + +#: acls/models/connect_method.py:13 +msgid "Connect method acl" +msgstr "Kiểm soát phương thức kết nối" + +#: 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 +msgid "Rule" +msgstr "Quy tắc" + +#: acls/models/login_acl.py:14 +msgid "Login acl" +msgstr "Kiểm soát truy cập đăng nhập" + +#: acls/models/login_acl.py:27 tickets/const.py:11 +msgid "Login confirm" +msgstr "Kiểm tra đăng nhập" + +#: acls/models/login_asset_acl.py:12 +msgid "Login asset acl" +msgstr "Kiểm soát truy cập tài sản đăng nhập" + +#: acls/models/login_asset_acl.py:22 tickets/const.py:13 +msgid "Login asset confirm" +msgstr "Kiểm tra tài sản đăng nhập" + +#: acls/notifications.py:12 +msgid "User login reminder" +msgstr "Nhắc nhở người dùng đăng nhập" + +#: acls/notifications.py:42 +msgid "User login alert for asset" +msgstr "Nhắc nhở tài sản đăng nhập" + +#: acls/serializers/base.py:11 acls/serializers/login_acl.py:12 +msgid "With * indicating a match all. " +msgstr "* biểu thị cho việc khớp với tất cả." + +#: acls/serializers/base.py:26 +msgid "" +"With * indicating a match all. Such as: 192.168.10.1, 192.168.1.0/24, " +"10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64 (Domain name " +"support)" +msgstr "" +"* biểu thị cho việc khớp với tất cả. Ví dụ: 192.168.10.1, 192.168.1.0/24, " +"10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64 (hỗ trợ miền)" + +#: acls/serializers/base.py:41 assets/serializers/asset/host.py:19 +msgid "IP/Host" +msgstr "IP/Máy chủ" + +#: acls/serializers/base.py:100 +msgid "Recipients" +msgstr "Người nhận" + +#: acls/serializers/base.py:112 tickets/serializers/ticket/ticket.py:78 +msgid "The organization `{}` does not exist" +msgstr "Tổ chức `{}` không tồn tại." + +#: acls/serializers/base.py:118 +msgid "None of the reviewers belong to Organization `{}`" +msgstr "Tất cả những người kiểm tra đều không thuộc tổ chức `{}`" + +#: acls/serializers/rules/rules.py:22 +#: xpack/plugins/cloud/serializers/task.py:163 +msgid "IP address invalid: `{}`" +msgstr "Địa chỉ IP không hợp lệ: `{}`" + +#: acls/serializers/rules/rules.py:35 +msgid "address invalid: `{}`" +msgstr "Địa chỉ không hợp lệ: `{}`" + +#: acls/serializers/rules/rules.py:40 +msgid "" +"With * indicating a match all. Such as: 192.168.10.1, 192.168.1.0/24, " +"10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64 " +msgstr "" +"* biểu thị cho việc khớp tất cả. Ví dụ: 192.168.10.1, 192.168.1.0/24, " +"10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64" + +#: acls/serializers/rules/rules.py:48 +#: authentication/templates/authentication/_msg_oauth_bind.html:12 +#: authentication/templates/authentication/_msg_rest_password_success.html:8 +#: authentication/templates/authentication/_msg_rest_public_key_success.html:8 +#: common/drf/renders/base.py:152 xpack/plugins/cloud/models.py:404 +msgid "IP" +msgstr "IP" + +#: acls/serializers/rules/rules.py:50 +msgid "Time Period" +msgstr "Thời gian" + +#: acls/templates/acls/asset_login_reminder.html:3 +#: acls/templates/acls/user_login_reminder.html:3 +#: authentication/templates/authentication/_msg_rest_password_success.html:2 +#: authentication/templates/authentication/_msg_rest_public_key_success.html:2 +#: perms/templates/perms/_msg_permed_items_expire.html:3 +#: users/templates/users/_msg_reset_mfa.html:4 +msgid "Dear" +msgstr "Kính thưa" + +#: acls/templates/acls/asset_login_reminder.html:5 +msgid "" +"We would like to inform you that a user has recently logged into the " +"following asset:" +msgstr "" +"Chúng tôi xin thông báo rằng, gần đây có người dùng đã đăng nhập vào tài sản" +" sau:" + +#: acls/templates/acls/asset_login_reminder.html:6 +msgid "Asset details" +msgstr "Thông tin tài sản" + +#: acls/templates/acls/asset_login_reminder.html:14 +#: acls/templates/acls/user_login_reminder.html:15 +msgid "" +"Please review the login activity to ensure the security and proper usage of " +"the asset. If you did not authorize this login or if you notice any " +"suspicious activity, please take the necessary actions immediately." +msgstr "" +"Xin vui lòng kiểm tra hoạt động đăng nhập này để đảm bảo an toàn và sử dụng " +"đúng cách tài sản. Nếu bạn không cho phép lần đăng nhập này hoặc phát hiện " +"bất kỳ hoạt động đáng ngờ nào, xin hãy ngay lập tức thực hiện các biện pháp " +"cần thiết." + +#: acls/templates/acls/asset_login_reminder.html:16 +#: acls/templates/acls/user_login_reminder.html:16 +msgid "Thank you for your attention to this matter" +msgstr "Cảm ơn bạn đã quan tâm đến vấn đề này." + +#: acls/templates/acls/user_login_reminder.html:5 +msgid "We would like to inform you that a user has recently logged:" +msgstr "Chúng tôi xin thông báo rằng, gần đây có người dùng đã đăng nhập:" + +#: acls/templates/acls/user_login_reminder.html:6 +msgid "User details" +msgstr "Thông tin người dùng" + +#: acls/templates/acls/user_login_reminder.html:10 audits/models.py:210 +#: audits/models.py:290 +#: authentication/templates/authentication/_msg_different_city.html:11 +#: tickets/models/ticket/login_confirm.py:13 +msgid "Login city" +msgstr "Thành phố đăng nhập" + +#: acls/templates/acls/user_login_reminder.html:11 audits/models.py:213 +#: audits/models.py:291 audits/serializers.py:91 +msgid "User agent" +msgstr "Trình duyệt người dùng" + +#: assets/api/asset/asset.py:154 +msgid "Cannot create asset directly, you should create a host or other" +msgstr "" +"Không thể tạo tài sản trực tiếp, bạn nên tạo máy chủ hoặc các tài sản khác. " +"<–SEP–> Số lượng tài sản đã vượt quá giới hạn 5000. <–SEP–> Không thể thay " +"đổi tên nút gốc. <–SEP–> Không thể xóa nút gốc ({}). <–SEP–> Xóa không thành" +" công, nút chứa tài sản. <–SEP–> Tên nút cùng cấp không được phép trùng " +"nhau. <–SEP–> Cần phải là số. <–SEP–> Nhiệm vụ: {} đã hoàn thành. <–SEP–> - " +"Nền tảng {} Ansible đã bị vô hiệu hóa, không thể thực hiện nhiệm vụ. <–SEP–>" +" >>> Giai đoạn chuẩn bị nhiệm vụ. <–SEP–> >>> Thực hiện nhiệm vụ theo từng " +"phần, tổng cộng {runner_count}. <–SEP–> >>> Bắt đầu thực hiện nhiệm vụ. " +"<–SEP–> >>> Không có nhiệm vụ nào cần thực hiện. <–SEP–> >>> Bắt đầu thực " +"hiện đợt nhiệm vụ thứ {index}. <–SEP–> Không có tài khoản." + +#: assets/api/asset/asset.py:158 +msgid "The number of assets exceeds the limit of 5000" +msgstr "Số lượng tài sản vượt quá giới hạn 5000" + +#: assets/api/node.py:58 +msgid "You can't update the root node name" +msgstr "Không thể sửa đổi tên nút gốc" + +#: assets/api/node.py:65 +msgid "You can't delete the root node ({})" +msgstr "Không thể xóa nút gốc ({})" + +#: assets/api/node.py:68 +msgid "Deletion failed and the node contains assets" +msgstr "Xóa không thành công, nút chứa tài sản" + +#: assets/api/tree.py:48 assets/serializers/node.py:42 +msgid "The same level node name cannot be the same" +msgstr "Tên nút cùng cấp không được trùng lặp" + +#: assets/api/zone.py:67 +msgid "Number required" +msgstr "Cần phải là số" + +#: assets/apps.py:9 +msgid "App Assets" +msgstr "Assets" + +#: assets/automations/base/manager.py:139 +msgid "Task: {} finished" +msgstr "Nhiệm vụ: {} Hoàn thành" + +#: assets/automations/base/manager.py:340 +msgid " - Platform {} ansible disabled" +msgstr "- Nền tảng {} Ansible đã bị vô hiệu hóa, không thể thực hiện nhiệm vụ" + +#: assets/automations/base/manager.py:526 +msgid ">>> Task preparation phase" +msgstr ">>> Giai đoạn chuẩn bị nhiệm vụ" + +#: assets/automations/base/manager.py:530 +msgid ">>> Executing tasks in batches, total {runner_count}" +msgstr ">>> Thực hiện nhiệm vụ theo từng đợt, tổng cộng {runner_count}" + +#: assets/automations/base/manager.py:535 +msgid ">>> Start executing tasks" +msgstr ">>> Bắt đầu thực hiện nhiệm vụ" + +#: assets/automations/base/manager.py:537 +msgid ">>> No tasks need to be executed" +msgstr ">>> Không có nhiệm vụ nào cần thực hiện" + +#: assets/automations/base/manager.py:541 +msgid ">>> Begin executing batch {index} of tasks" +msgstr ">>> Bắt đầu thực hiện đợt nhiệm vụ thứ {index}" + +#: assets/automations/ping_gateway/manager.py:33 +#: authentication/models/connection_token.py:179 +msgid "No account" +msgstr "Không có tài khoản" + +#: assets/automations/ping_gateway/manager.py:36 +msgid "Asset, {}, using account {}" +msgstr "Tài sản, {}, Sử dụng tài khoản {}" + +#: assets/automations/ping_gateway/manager.py:55 +msgid "Unable to connect to port {port} on {address}" +msgstr "Không thể kết nối đến cổng {port} tại địa chỉ {address}" + +#: assets/automations/ping_gateway/manager.py:58 +#: authentication/middleware.py:95 xpack/plugins/cloud/providers/fc.py:47 +#: xpack/plugins/cloud/providers/proxmox.py:29 +msgid "Authentication failed" +msgstr "Xác thực thất bại" + +#: assets/automations/ping_gateway/manager.py:60 +#: assets/automations/ping_gateway/manager.py:86 terminal/const.py:104 +msgid "Connect failed" +msgstr "Kết nối thất bại" + +#: assets/automations/ping_gateway/manager.py:118 +msgid ">>> Start executing the task to test gateway connectivity" +msgstr ">>> Bắt đầu thực hiện nhiệm vụ kiểm tra kết nối của cổng" + +#: assets/const/automation.py:6 audits/const.py:6 audits/const.py:48 +#: audits/signal_handlers/activity_log.py:63 common/utils/ip/geoip/utils.py:42 +#: common/utils/ip/geoip/utils.py:48 common/utils/ip/utils.py:104 +msgid "Unknown" +msgstr "Không xác định" + +#: assets/const/automation.py:7 +msgid "N/A" +msgstr "Không áp dụng" + +#: assets/const/automation.py:8 +msgid "OK" +msgstr "Thành công" + +#: assets/const/automation.py:10 +msgid "RDP error" +msgstr "Kết nối RDP thất bại" + +#: assets/const/automation.py:11 +msgid "Authentication error" +msgstr "Xác thực thất bại" + +#: assets/const/automation.py:12 +msgid "Invalid password error" +msgstr "Mật khẩu không hợp lệ" + +#: assets/const/automation.py:13 +msgid "OpenSSH key error" +msgstr "Lỗi khóa OpenSSH" + +#: assets/const/automation.py:14 +msgid "NTLM credentials rejected error" +msgstr "Thông tin NTLM bị từ chối" + +#: assets/const/automation.py:15 +msgid "Create temporary error" +msgstr "Tạo thư mục tạm thời thất bại" + +#: assets/const/automation.py:23 +msgid "Ping" +msgstr "Kiểm tra" + +#: assets/const/automation.py:24 +msgid "Ping gateway" +msgstr "Kiểm tra cổng" + +#: assets/const/automation.py:25 +msgid "Gather facts" +msgstr "Thu thập thông tin tài sản" + +#: assets/const/base.py:32 audits/const.py:59 +#: terminal/serializers/applet_host.py:32 users/models/user/_auth.py:32 +msgid "Disabled" +msgstr "Vô hiệu hóa" + +#: assets/const/base.py:33 settings/serializers/basic.py:8 +#: users/serializers/preference/koko.py:19 +#: users/serializers/preference/lina.py:51 +#: users/serializers/preference/luna.py:85 +msgid "Basic" +msgstr "Cơ bản" + +#: assets/const/base.py:34 assets/const/protocol.py:304 +#: assets/models/asset/web.py:13 +msgid "Script" +msgstr "Kịch bản" + +#: assets/const/category.py:10 assets/models/asset/host.py:8 +#: settings/serializers/auth/radius.py:17 settings/serializers/auth/sms.py:76 +#: settings/serializers/feature.py:83 settings/serializers/feature.py:96 +#: settings/serializers/msg.py:30 terminal/models/component/endpoint.py:14 +#: terminal/serializers/applet.py:18 xpack/plugins/cloud/const.py:39 +#: xpack/plugins/cloud/serializers/account_attrs.py:87 +msgid "Host" +msgstr "Máy chủ" + +#: assets/const/category.py:11 assets/models/asset/device.py:8 +msgid "Device" +msgstr "Thiết bị mạng" + +#: assets/const/category.py:13 +msgid "Cloud service" +msgstr "Cloud" + +#: assets/const/category.py:14 assets/models/asset/gpt.py:11 +#: assets/models/asset/web.py:16 audits/const.py:46 +#: terminal/models/applet/applet.py:28 users/const.py:76 +msgid "Web" +msgstr "Web" + +#: assets/const/category.py:16 common/sdk/sms/endpoint.py:20 +msgid "Custom type" +msgstr "Loại tùy chỉnh" + +#: assets/const/cloud.py:7 +msgid "Public cloud" +msgstr "Đám mây công cộng" + +#: assets/const/cloud.py:8 +msgid "Private cloud" +msgstr "Đám mây riêng tư" + +#: assets/const/cloud.py:9 +msgid "Kubernetes" +msgstr "Kubernetes" + +#: assets/const/device.py:7 +msgid "Cisco" +msgstr "Cisco" + +#: assets/const/device.py:8 +msgid "Huawei" +msgstr "Huawei" + +#: assets/const/device.py:9 +msgid "H3C" +msgstr "" + +#: assets/const/device.py:10 +msgid "Juniper" +msgstr "" + +#: assets/const/device.py:11 +msgid "TP-Link" +msgstr "" + +#: assets/const/device.py:12 assets/const/ds.py:7 +#: terminal/models/applet/applet.py:27 tickets/const.py:9 +msgid "General" +msgstr "Chung" + +#: assets/const/device.py:13 +msgid "Switch" +msgstr "Switch" + +#: assets/const/device.py:14 +msgid "Router" +msgstr "Router" + +#: assets/const/device.py:15 +msgid "Firewall" +msgstr "Tường lửa" + +#: assets/const/ds.py:10 +msgid "Windows Active Directory" +msgstr "Active Directory Windows" + +#: assets/const/gpt.py:7 +msgid "ChatGPT" +msgstr "ChatGPT" + +#: assets/const/host.py:13 rbac/tree.py:29 rbac/tree.py:69 +#: xpack/plugins/cloud/const.py:76 +msgid "Other" +msgstr "Khác" + +#: assets/const/protocol.py:46 +msgid "Old SSH version" +msgstr "Phiên bản SSH cũ" + +#: assets/const/protocol.py:47 +msgid "Old SSH version like openssh 5.x or 6.x" +msgstr "Các phiên bản SSH cũ, chẳng hạn như openssh 5.x hoặc 6.x" + +#: assets/const/protocol.py:53 +msgid "Netcat help text" +msgstr "" +"Use netcat (nc) as a proxy tool to forward connections from the proxy server" +" to the target host. This is useful in environments that do not support the " +"SSH native proxy option (-W), or when more flexibility and timeout control " +"are needed." + +#: assets/const/protocol.py:64 +msgid "SFTP root" +msgstr "Đường dẫn gốc SFTP" + +#: assets/const/protocol.py:66 +msgid "" +"SFTP root directory, Support variable:
- ${ACCOUNT} The connected " +"account username
- ${HOME} The home directory of the connected account " +"
- ${USER} The username of the user" +msgstr "" +"Thư mục gốc SFTP, hỗ trợ các biến:
-${ACCOUNT} tên người dùng của tài " +"khoản đã kết nối
-${HOME} thư mục chính của tài khoản đã kết nối
" +"-${USER} tên người dùng của người dùng" + +#: assets/const/protocol.py:81 +msgid "Console" +msgstr "Bảng điều khiển" + +#: assets/const/protocol.py:82 +msgid "Connect to console session" +msgstr "Kết nối đến phiên bảng điều khiển" + +#: assets/const/protocol.py:86 +msgid "Any" +msgstr "Bất kỳ" + +#: assets/const/protocol.py:88 rbac/tree.py:65 +#: settings/serializers/security.py:272 +msgid "Security" +msgstr "Bảo mật" + +#: assets/const/protocol.py:89 +msgid "" +"Security layer to use for the connection:
Any
Automatically select the" +" security mode based on the security protocols supported by both the client " +"and the server
RDP
Legacy RDP encryption. This mode is generally only " +"used for older Windows servers or in cases where a standard Windows login " +"screen is desired
TLS
RDP authentication and encryption implemented " +"via TLS.
NLA
This mode uses TLS encryption and requires the username " +"and password to be given in advance" +msgstr "" +"Lớp bảo mật đã kết nối:
Bất kỳ
Tự động lựa chọn chế độ bảo mật dựa" +" trên các giao thức bảo mật mà máy khách và máy chủ hỗ trợ
RDP
Chế " +"độ mã hóa RDP truyền thống. Thường chỉ được sử dụng cho các máy chủ Windows " +"cũ hoặc trong trường hợp cần màn hình đăng nhập Windows tiêu chuẩn
TLS " +"
Xác thực và mã hóa RDP được thực hiện qua TLS
NLA
Chế độ này " +"sử dụng mã hóa TLS và yêu cầu cung cấp tên người dùng và mật khẩu trước." + +#: assets/const/protocol.py:106 +msgid "AD domain" +msgstr "AD miền" + +#: assets/const/protocol.py:121 +msgid "Username prompt" +msgstr "Gợi ý tên người dùng" + +#: assets/const/protocol.py:122 +msgid "We will send username when we see this prompt" +msgstr "Khi chúng ta thấy gợi ý này, chúng ta sẽ gửi tên người dùng" + +#: assets/const/protocol.py:127 +msgid "Password prompt" +msgstr "Gợi ý mật khẩu" + +#: assets/const/protocol.py:128 +msgid "We will send password when we see this prompt" +msgstr "Khi chúng ta thấy gợi ý này, chúng ta sẽ gửi mật khẩu" + +#: assets/const/protocol.py:133 +msgid "Success prompt" +msgstr "Gợi ý thành công" + +#: assets/const/protocol.py:134 +msgid "We will consider login success when we see this prompt" +msgstr "Khi chúng ta thấy gợi ý này, chúng ta sẽ coi là đăng nhập thành công" + +#: assets/const/protocol.py:145 assets/models/asset/database.py:11 +#: settings/serializers/msg.py:49 +msgid "Use SSL" +msgstr "Sử dụng SSL" + +#: assets/const/protocol.py:180 +msgid "SYSDBA" +msgstr "SYSDBA" + +#: assets/const/protocol.py:181 +msgid "Connect as SYSDBA" +msgstr "Kết nối với vai trò SYSDBA" + +#: assets/const/protocol.py:196 +msgid "" +"SQL Server version, Different versions have different connection drivers" +msgstr "" +"Phiên bản SQL Server, các phiên bản khác nhau có trình điều khiển kết nối " +"khác nhau" + +#: assets/const/protocol.py:201 +msgid "Encrypt" +msgstr "Mã hóa" + +#: assets/const/protocol.py:202 +msgid "Whether to use TLS encryption." +msgstr "" + +#: assets/const/protocol.py:232 +msgid "Auth source" +msgstr "Cơ sở dữ liệu xác thực" + +#: assets/const/protocol.py:233 +msgid "The database to authenticate against" +msgstr "Cơ sở dữ liệu cần xác thực" + +#: assets/const/protocol.py:238 authentication/models/connection_token.py:48 +msgid "Connect options" +msgstr "Mục kết nối" + +#: assets/const/protocol.py:239 +msgid "The connection specific options eg. retryWrites=false&retryReads=false" +msgstr "" +"Kết nối các tùy chọn cụ thể, ví dụ: retryWrites=false&retryReads=false" + +#: assets/const/protocol.py:251 +msgid "Auth username" +msgstr "Sử dụng xác thực tên người dùng" + +#: assets/const/protocol.py:274 +msgid "Safe mode" +msgstr "Chế độ bảo mật" + +#: assets/const/protocol.py:276 +msgid "" +"When safe mode is enabled, some operations will be disabled, such as: New " +"tab, right click, visit other website, etc." +msgstr "" +"Khi chế độ bảo mật được bật, một số hành động sẽ bị vô hiệu hóa, chẳng hạn " +"như: mở tab mới, nhấp chuột phải, truy cập các trang web khác v.v." + +#: assets/const/protocol.py:281 assets/models/asset/web.py:9 +#: assets/serializers/asset/info/spec.py:16 +msgid "Autofill" +msgstr "Tự động điền" + +#: assets/const/protocol.py:289 assets/models/asset/web.py:10 +msgid "Username selector" +msgstr "Trình chọn tên người dùng" + +#: assets/const/protocol.py:294 assets/models/asset/web.py:11 +msgid "Password selector" +msgstr "Trình chọn mật khẩu" + +#: assets/const/protocol.py:299 assets/models/asset/web.py:12 +msgid "Submit selector" +msgstr "Trình chọn nút xác nhận" + +#: assets/const/protocol.py:322 +msgid "API mode" +msgstr "Chế độ API" + +#: assets/const/types.py:252 +msgid "All types" +msgstr "Tất cả loại" + +#: assets/const/web.py:7 +msgid "Website" +msgstr "Trang web" + +#: assets/exceptions.py:12 +msgid "This function is not supported temporarily" +msgstr "Tính năng này tạm thời không được hỗ trợ" + +#: assets/models/asset/cloud.py:11 +msgid "Cloud" +msgstr "Dịch vụ đám mây" + +#: assets/models/asset/common.py:101 assets/models/platform.py:16 +#: settings/serializers/auth/radius.py:18 settings/serializers/auth/sms.py:77 +#: settings/serializers/msg.py:31 terminal/serializers/storage.py:133 +#: xpack/plugins/cloud/serializers/account_attrs.py:88 +msgid "Port" +msgstr "Cổng" + +#: assets/models/asset/common.py:167 assets/serializers/asset/common.py:174 +#: settings/serializers/terminal.py:10 terminal/serializers/endpoint.py:58 +msgid "Address" +msgstr "Địa chỉ" + +#: assets/models/asset/common.py:169 assets/models/platform.py:155 +#: assets/serializers/asset/common.py:150 +#: authentication/backends/passkey/models.py:12 +#: authentication/serializers/connect_token_secret.py:122 +#: perms/serializers/user_permission.py:26 xpack/plugins/cloud/models.py:398 +msgid "Platform" +msgstr "Nền tảng" + +#: assets/models/asset/common.py:173 assets/models/zone.py:22 +#: perms/serializers/user_permission.py:29 xpack/plugins/cloud/models.py:400 +msgid "Zone" +msgstr "Tên miền" + +#: assets/models/asset/common.py:176 assets/serializers/asset/common.py:176 +#: assets/serializers/automations/base.py:21 ops/serializers/job.py:22 +#: perms/serializers/permission.py:58 +msgid "Nodes" +msgstr "Nút" + +#: assets/models/asset/common.py:183 assets/serializers/asset/common.py:425 +#: assets/serializers/asset/host.py:11 +msgid "Gathered info" +msgstr "Thu thập thông tin phần cứng tài sản" + +#: assets/models/asset/common.py:184 assets/serializers/asset/custom.py:15 +msgid "Custom info" +msgstr "Thuộc tính tùy chỉnh" + +#: assets/models/asset/common.py:431 +msgid "Can refresh asset hardware info" +msgstr "Có thể cập nhật thông tin phần cứng tài sản" + +#: assets/models/asset/common.py:432 +msgid "Can test asset connectivity" +msgstr "Có thể kiểm tra tính kết nối của tài sản" + +#: assets/models/asset/common.py:433 +msgid "Can match asset" +msgstr "Có thể khớp tài sản" + +#: assets/models/asset/common.py:434 +msgid "Can change asset nodes" +msgstr "Có thể sửa đổi nút tài sản" + +#: assets/models/asset/custom.py:8 +msgid "Custom asset" +msgstr "Tùy chỉnh tài sản" + +#: assets/models/asset/database.py:12 +msgid "CA cert" +msgstr "Chứng chỉ CA" + +#: assets/models/asset/database.py:13 +msgid "Client cert" +msgstr "Chứng chỉ khách hàng" + +#: assets/models/asset/database.py:14 +msgid "Client key" +msgstr "Khóa khách hàng" + +#: assets/models/asset/database.py:15 +msgid "Allow invalid cert" +msgstr "Bỏ qua kiểm tra chứng chỉ" + +#: assets/models/asset/database.py:18 +msgid "Postgresql SSL mode" +msgstr "Chế độ SSL PostgreSQL" + +#: assets/models/asset/ds.py:10 assets/serializers/asset/ds.py:20 +msgid "Domain name" +msgstr "Tên miền" + +#: assets/models/asset/gpt.py:8 settings/serializers/feature.py:149 +#: settings/serializers/feature.py:164 +msgid "Proxy" +msgstr "Đại lý" + +#: assets/models/automations/base.py:23 assets/models/cmd_filter.py:32 +#: assets/models/node.py:553 ops/models/job.py:158 +#: perms/models/asset_permission.py:72 tickets/models/ticket/apply_asset.py:15 +#: xpack/plugins/cloud/models.py:399 +msgid "Node" +msgstr "Nút" + +#: assets/models/automations/base.py:29 ops/models/job.py:236 +#: ops/serializers/job.py:24 settings/serializers/auth/sms.py:108 +msgid "Parameters" +msgstr "Tham số" + +#: assets/models/automations/base.py:31 +msgid "Last execution date" +msgstr "Ngày thực hiện cuối" + +#: assets/models/automations/base.py:44 assets/models/automations/base.py:132 +msgid "Automation task" +msgstr "Nhiệm vụ tự động hóa" + +#: assets/models/automations/base.py:123 +msgid "Asset automation task" +msgstr "Nhiệm vụ tự động hóa tài sản" + +#: assets/models/automations/base.py:140 assets/models/cmd_filter.py:41 +#: common/db/models.py:34 ops/models/base.py:54 ops/models/job.py:240 +#: users/models/user/__init__.py:324 +msgid "Date created" +msgstr "Ngày tạo" + +#: assets/models/automations/base.py:155 +#: assets/serializers/automations/base.py:44 xpack/plugins/cloud/models.py:247 +#: xpack/plugins/cloud/serializers/task.py:260 +msgid "Trigger mode" +msgstr "Chế độ kích hoạt" + +#: assets/models/automations/base.py:157 audits/serializers.py:38 +#: ops/models/base.py:52 ops/models/job.py:238 +#: xpack/plugins/cloud/manager.py:111 +msgid "Summary" +msgstr "Tổng hợp" + +#: assets/models/automations/base.py:158 ops/models/base.py:51 +#: ops/models/job.py:237 xpack/plugins/cloud/models.py:230 +msgid "Result" +msgstr "Kết quả" + +#: assets/models/automations/gather_facts.py:15 +msgid "Gather asset facts" +msgstr "Thu thập thông tin tài sản" + +#: assets/models/automations/ping.py:15 +msgid "Ping asset" +msgstr "Kiểm tra tài sản" + +#: assets/models/base.py:17 terminal/notifications.py:243 +msgid "Connectivity" +msgstr "Tính kết nối" + +#: assets/models/base.py:19 authentication/models/temp_token.py:13 +msgid "Date verified" +msgstr "Ngày xác nhận" + +#: assets/models/cmd_filter.py:28 perms/models/asset_permission.py:66 +#: users/models/group.py:28 users/models/user/__init__.py:72 +msgid "User group" +msgstr "Nhóm người dùng" + +#: assets/models/cmd_filter.py:42 common/db/models.py:35 +#: users/models/user/__init__.py:151 +msgid "Date updated" +msgstr "Ngày cập nhật" + +#: assets/models/cmd_filter.py:44 assets/models/cmd_filter.py:91 +#: common/db/models.py:32 users/models/user/__init__.py:110 +#: users/serializers/group.py:32 +msgid "Created by" +msgstr "Người tạo" + +#: assets/models/cmd_filter.py:52 +msgid "Command filter" +msgstr "Bộ lọc lệnh" + +#: assets/models/cmd_filter.py:66 +msgid "Deny" +msgstr "Từ chối" + +#: assets/models/cmd_filter.py:67 +msgid "Allow" +msgstr "Cho phép" + +#: assets/models/cmd_filter.py:68 +msgid "Reconfirm" +msgstr "Rà soát" + +#: assets/models/cmd_filter.py:72 +msgid "Filter" +msgstr "Bộ lọc" + +#: assets/models/cmd_filter.py:95 +msgid "Command filter rule" +msgstr "Quy tắc lệnh lọc" + +#: assets/models/favorite_asset.py:17 +msgid "Favorite asset" +msgstr "Tài sản yêu thích" + +#: assets/models/gateway.py:34 assets/serializers/domain.py:18 +msgid "Gateway" +msgstr "Cổng" + +#: assets/models/label.py:15 rbac/const.py:6 +msgid "System" +msgstr "Hệ thống" + +#: assets/models/label.py:19 assets/models/node.py:539 +#: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18 +#: assets/serializers/cagegory.py:24 +#: authentication/models/connection_token.py:34 +#: authentication/serializers/connect_token_secret.py:129 +#: common/serializers/common.py:86 labels/models.py:12 settings/models.py:40 +#: users/models/preference.py:13 +msgid "Value" +msgstr "Giá trị" + +#: assets/models/label.py:40 assets/serializers/cagegory.py:10 +#: assets/serializers/cagegory.py:17 assets/serializers/cagegory.py:23 +#: assets/serializers/platform.py:159 +#: authentication/serializers/connect_token_secret.py:128 +#: common/serializers/common.py:85 labels/serializers.py:45 +#: settings/serializers/msg.py:90 xpack/plugins/cloud/models.py:403 +msgid "Label" +msgstr "Nhãn" + +#: assets/models/my_asset.py:12 assets/serializers/my_asset.py:16 +msgid "Custom Name" +msgstr "Tên tùy chỉnh" + +#: assets/models/my_asset.py:13 assets/serializers/my_asset.py:17 +msgid "Custom Comment" +msgstr "Ghi chú tùy chỉnh" + +#: assets/models/my_asset.py:18 rbac/tree.py:57 +msgid "My assets" +msgstr "Tài sản của tôi" + +#: assets/models/node.py:168 +msgid "New node" +msgstr "Nút mới" + +#: assets/models/node.py:467 audits/backends/db.py:85 audits/backends/db.py:86 +msgid "empty" +msgstr "Trống" + +#: assets/models/node.py:538 perms/models/perm_node.py:28 +msgid "Key" +msgstr "Phím" + +#: assets/models/node.py:540 assets/serializers/node.py:20 +msgid "Full value" +msgstr "Tên đầy đủ" + +#: assets/models/node.py:544 perms/models/perm_node.py:30 +msgid "Parent key" +msgstr "Khóa SSH riêng" + +#: assets/models/node.py:556 +msgid "Can match node" +msgstr "Có thể khớp với nút" + +#: assets/models/platform.py:17 +msgid "Primary" +msgstr "Chính" + +#: assets/models/platform.py:18 ops/models/variable.py:20 +msgid "Required" +msgstr "Thiết yếu" + +#: assets/models/platform.py:19 assets/serializers/platform.py:161 +#: terminal/models/component/storage.py:28 +#: xpack/plugins/cloud/providers/nutanix.py:30 +msgid "Default" +msgstr "Mặc định" + +#: assets/models/platform.py:20 +msgid "Public" +msgstr "Công khai" + +#: assets/models/platform.py:21 assets/serializers/platform.py:85 +#: settings/serializers/settings.py:95 +msgid "Setting" +msgstr "Thiết lập" + +#: assets/models/platform.py:38 audits/const.py:60 +#: authentication/backends/passkey/models.py:11 settings/models.py:43 +#: terminal/serializers/applet_host.py:33 users/models/user/_auth.py:33 +msgid "Enabled" +msgstr "Kích hoạt" + +#: assets/models/platform.py:39 +msgid "Ansible config" +msgstr "Cấu hình Ansible" + +#: assets/models/platform.py:41 assets/serializers/platform.py:36 +msgid "Ping enabled" +msgstr "Kích hoạt Tài sản Khám Phá" + +#: assets/models/platform.py:42 assets/serializers/platform.py:37 +msgid "Ping method" +msgstr "Phương thức Khám Phá Tài sản" + +#: assets/models/platform.py:43 +msgid "Ping params" +msgstr "Tham số Khám Phá Tài sản" + +#: assets/models/platform.py:45 assets/models/platform.py:69 +#: assets/serializers/platform.py:39 +msgid "Gather facts enabled" +msgstr "Kích hoạt Thu Thập Thông Tin Tài sản" + +#: assets/models/platform.py:47 assets/models/platform.py:71 +#: assets/serializers/platform.py:43 +msgid "Gather facts method" +msgstr "Phương thức Thu Thập Thông Tin" + +#: assets/models/platform.py:49 assets/models/platform.py:73 +msgid "Gather facts params" +msgstr "Tham số Thu Thập Thông Tin" + +#: assets/models/platform.py:51 assets/serializers/platform.py:53 +msgid "Change secret enabled" +msgstr "Kích hoạt Đổi Mật Khẩu" + +#: assets/models/platform.py:53 assets/serializers/platform.py:57 +msgid "Change secret method" +msgstr "Phương thức Đổi Mật Khẩu" + +#: assets/models/platform.py:55 +msgid "Change secret params" +msgstr "Tham số Đổi Mật Khẩu" + +#: assets/models/platform.py:57 assets/serializers/platform.py:60 +msgid "Push account enabled" +msgstr "Kích hoạt Đẩy Tài Khoản" + +#: assets/models/platform.py:59 assets/serializers/platform.py:64 +msgid "Push account method" +msgstr "Phương thức Đẩy Tài Khoản" + +#: assets/models/platform.py:61 +msgid "Push account params" +msgstr "Tham số Đẩy Tài Khoản" + +#: assets/models/platform.py:63 assets/serializers/platform.py:46 +msgid "Verify account enabled" +msgstr "Mở Kích Hoạt Xác Minh Tài Khoản" + +#: assets/models/platform.py:65 assets/serializers/platform.py:50 +msgid "Verify account method" +msgstr "Phương thức Xác Minh Tài Khoản" + +#: assets/models/platform.py:67 +msgid "Verify account params" +msgstr "Tham số Xác Minh Tài Khoản" + +#: assets/models/platform.py:75 +msgid "Remove account enabled" +msgstr "Mở tài khoản xóa bỏ" + +#: assets/models/platform.py:77 assets/serializers/platform.py:74 +msgid "Remove account method" +msgstr "Cách xóa bỏ tài khoản" + +#: assets/models/platform.py:79 +msgid "Remove account params" +msgstr "Tham số xóa bỏ tài khoản" + +#: assets/models/platform.py:98 labels/models.py:13 +msgid "Internal" +msgstr "Builtin" + +#: assets/models/platform.py:102 assets/serializers/platform.py:171 +msgid "Charset" +msgstr "Mã hóa" + +#: assets/models/platform.py:104 assets/serializers/platform.py:209 +msgid "Gateway enabled" +msgstr "Kích hoạt cổng mạng miền" + +#: assets/models/platform.py:105 +msgid "DS enabled" +msgstr "Kích hoạt dịch vụ thư mục" + +#: assets/models/platform.py:107 assets/serializers/platform.py:202 +msgid "Su enabled" +msgstr "Switch account enabled" + +#: assets/models/platform.py:108 assets/serializers/platform.py:177 +msgid "Su method" +msgstr "Switch account method" + +#: assets/models/platform.py:109 assets/serializers/platform.py:180 +msgid "Custom fields" +msgstr "Thuộc tính tùy chỉnh" + +#: assets/models/utils.py:18 +msgid "%(value)s is not an even number" +msgstr "%(value)s không phải là số chẵn" + +#: assets/notifications.py:12 +msgid "" +"Batch update platform in assets, skipping assets that do not meet platform " +"type" +msgstr "" +"Tài sản trong cập nhật hàng loạt nền tảng, bỏ qua tài sản không phù hợp với " +"loại nền tảng" + +#: assets/serializers/asset/common.py:36 assets/serializers/platform.py:153 +msgid "Protocols, format is [\"protocol/port\"]" +msgstr "Giao thức, định dạng là [\"Giao thức/Cổng\"]" + +#: assets/serializers/asset/common.py:38 +msgid "Protocol, format is name/port" +msgstr "Giao thức, định dạng là Tên/Cổng" + +#: assets/serializers/asset/common.py:107 +msgid "" +"Accounts, format [{\"name\": \"x\", \"username\": \"x\", \"secret\": \"x\", " +"\"secret_type\": \"password\"}]" +msgstr "" +"Tài khoản, định dạng là [{\"name\": \"x\", \"username\": \"x\", \"secret\": " +"\"x\", \"secret_type\": \"password\"}]" + +#: assets/serializers/asset/common.py:135 +msgid "" +"Node path, format [\"/org_name/node_name\"], if node not exist, will create " +"it" +msgstr "" +"Đường dẫn nút, định dạng là [\"/Tổ chức/Tên nút\"], nếu nút không tồn tại, " +"sẽ tạo nó" + +#: assets/serializers/asset/common.py:147 assets/serializers/platform.py:174 +#: authentication/serializers/connect_token_secret.py:30 +#: authentication/serializers/connect_token_secret.py:77 +#: perms/models/asset_permission.py:76 perms/serializers/permission.py:67 +#: perms/serializers/user_permission.py:86 xpack/plugins/cloud/models.py:401 +#: xpack/plugins/cloud/serializers/task.py:36 +msgid "Protocols" +msgstr "Nhóm giao thức" + +#: assets/serializers/asset/common.py:149 +#: assets/serializers/asset/common.py:175 +msgid "Node path" +msgstr "Đường dẫn nút" + +#: assets/serializers/asset/common.py:172 +#: assets/serializers/asset/common.py:426 +msgid "Auto info" +msgstr "Thông tin tự động hóa" + +#: assets/serializers/asset/common.py:271 +#: xpack/plugins/cloud/serializers/task.py:119 +msgid "Platform not exist" +msgstr "Nền tảng không tồn tại" + +#: assets/serializers/asset/common.py:307 +msgid "port out of range (0-65535)" +msgstr "Cổng ngoài phạm vi (0-65535)" + +#: assets/serializers/asset/common.py:314 +msgid "Protocol is required: {}" +msgstr "Giao thức là bắt buộc: {}" + +#: assets/serializers/asset/common.py:353 +msgid "Invalid data" +msgstr "Dữ liệu không hợp lệ" + +#: assets/serializers/asset/database.py:13 +msgid "Default database" +msgstr "Cơ sở dữ liệu mặc định" + +#: assets/serializers/asset/database.py:23 +msgid "CA cert help text" +msgstr "" +"Trường Tên chung (CN) đã bị loại bỏ, vui lòng sử dụng Trường Tên thay thế " +"chủ đề (SAN) để xác minh tên miền theo RFC 5280 nhằm nâng cao độ an toàn." + +#: assets/serializers/asset/database.py:24 +msgid "Postgresql ssl model help text" +msgstr "" +"Ưu tiên: Tôi không quan tâm đến mã hóa, nhưng nếu máy chủ hỗ trợ mã hóa, tôi sẵn lòng chịu chi phí cho mã hóa. \n" +"Yêu cầu: Tôi muốn dữ liệu của mình được mã hóa, tôi chấp nhận chi phí. Tôi tin rằng mạng sẽ đảm bảo tôi luôn kết nối với máy chủ mà tôi muốn. \n" +"Xác minh CA: Tôi muốn dữ liệu của mình được mã hóa, tôi chấp nhận chi phí. Tôi muốn đảm bảo rằng tôi kết nối với máy chủ mà tôi tin tưởng. \n" +"Xác minh đầy đủ: Tôi muốn dữ liệu của mình được mã hóa, tôi chấp nhận chi phí. Tôi muốn đảm bảo rằng tôi kết nối với máy chủ mà tôi tin tưởng, và nó là máy chủ mà tôi đã chỉ định." + +#: assets/serializers/asset/ds.py:18 +msgid "" +"The domain part used by the directory service (e.g., AD) and appended to the" +" username during login, such as example.com in user@example.com." +msgstr "" +"Tên miền (Domain Name) là phần tên miền được thêm vào sau tên người dùng khi" +" đăng nhập vào dịch vụ thư mục (ví dụ như AD), chẳng hạn như example.com " +"trong user@example.com" + +#: assets/serializers/asset/gpt.py:20 +msgid "" +"If the server cannot directly connect to the API address, you need set up an" +" HTTP proxy. e.g. http(s)://host:port" +msgstr "" +"Nếu máy chủ không thể truy cập trực tiếp địa chỉ api, bạn cần thiết lập một " +"proxy HTTP. Ví dụ http(s)://host:port" + +#: assets/serializers/asset/gpt.py:24 +msgid "HTTP proxy" +msgstr "Proxy HTTP(s)" + +#: assets/serializers/asset/gpt.py:31 +msgid "Proxy must start with http:// or https://" +msgstr "Proxy phải bắt đầu bằng http:// hoặc https://" + +#: assets/serializers/asset/info/gathered.py:6 +msgid "Vendor" +msgstr "Nhà sản xuất" + +#: assets/serializers/asset/info/gathered.py:7 +msgid "Model" +msgstr "Mẫu" + +#: assets/serializers/asset/info/gathered.py:8 +#: tickets/models/ticket/general.py:300 +msgid "Serial number" +msgstr "Số sê-ri." + +#: assets/serializers/asset/info/gathered.py:9 +msgid "CPU model" +msgstr "Mã CPU" + +#: assets/serializers/asset/info/gathered.py:10 +msgid "CPU count" +msgstr "Số lượng CPU" + +#: assets/serializers/asset/info/gathered.py:11 +msgid "CPU cores" +msgstr "Số nhân CPU" + +#: assets/serializers/asset/info/gathered.py:12 +msgid "CPU vcpus" +msgstr "Tổng số CPU" + +#: assets/serializers/asset/info/gathered.py:13 +msgid "Memory" +msgstr "Bộ nhớ" + +#: assets/serializers/asset/info/gathered.py:14 +msgid "Disk total" +msgstr "Dung lượng ổ cứng" + +#: assets/serializers/asset/info/gathered.py:16 +#: authentication/serializers/connect_token_secret.py:119 +msgid "OS" +msgstr "Hệ điều hành" + +#: assets/serializers/asset/info/gathered.py:17 +msgid "OS version" +msgstr "Phiên bản hệ thống" + +#: assets/serializers/asset/info/gathered.py:18 +msgid "OS arch" +msgstr "Kiến trúc hệ thống" + +#: assets/serializers/asset/info/gathered.py:20 +msgid "GPU model" +msgstr "Mã GPU" + +#: assets/serializers/automations/base.py:38 +msgid "Executions" +msgstr "Số lần thực hiện" + +#: assets/serializers/cagegory.py:13 +msgid "Constraints" +msgstr "Ràng buộc" + +#: assets/serializers/cagegory.py:19 settings/serializers/feature.py:139 +msgid "Types" +msgstr "Loại" + +#: assets/serializers/domain.py:20 +msgid "" +"A gateway is a network proxy for a zone, and when connecting assets within " +"the zone, the connection is routed through the gateway." +msgstr "" +"Cổng là đại diện mạng của miền, khi kết nối với tài sản trong miền, kết nối " +"sẽ được định tuyến qua cổng." + +#: assets/serializers/gateway.py:19 +msgid "The platform must start with Gateway" +msgstr "Nền tảng phải bắt đầu từ Gateway" + +#: assets/serializers/gateway.py:28 common/validators.py:34 +msgid "This field must be unique." +msgstr "Trường phải là duy nhất" + +#: assets/serializers/node.py:17 +msgid "value" +msgstr "Giá trị" + +#: assets/serializers/node.py:31 +msgid "Can't contains: /" +msgstr "Không được chứa: /" + +#: assets/serializers/platform.py:36 +msgid "Enable asset detection" +msgstr "Kích hoạt tìm kiếm tài sản" + +#: assets/serializers/platform.py:40 +msgid "Enable asset information collection" +msgstr "Kích hoạt thu thập thông tin tài sản" + +#: assets/serializers/platform.py:47 +msgid "Enable account verification" +msgstr "Bật xác thực tài khoản" + +#: assets/serializers/platform.py:54 +msgid "Enable account secret auto change" +msgstr "Kích hoạt thay đổi mật khẩu" + +#: assets/serializers/platform.py:61 +msgid "Enable account auto push" +msgstr "Kích hoạt đẩy tài khoản" + +#: assets/serializers/platform.py:67 +msgid "Gather accounts enabled" +msgstr "Kích hoạt thu thập tài khoản" + +#: assets/serializers/platform.py:68 +msgid "Enable account collection" +msgstr "Khám phá tài khoản tự động" + +#: assets/serializers/platform.py:71 +msgid "Gather accounts method" +msgstr "Phương thức khám phá tài khoản" + +#: assets/serializers/platform.py:77 +msgid "Remove accounts enabled" +msgstr "Bật xóa tài khoản" + +#: assets/serializers/platform.py:78 +msgid "Enable account remove" +msgstr "Khởi động xóa tài khoản" + +#: assets/serializers/platform.py:86 +msgid "Port from addr" +msgstr "Cổng đến từ địa chỉ" + +#: assets/serializers/platform.py:98 +msgid "" +"This protocol is primary, and it must be set when adding assets. " +"Additionally, there can only be one primary protocol." +msgstr "" +"Giao thức này là chính, cần phải thiết lập khi thêm tài sản, và chỉ có thể " +"có một giao thức chính." + +#: assets/serializers/platform.py:103 +msgid "This protocol is required, and it must be set when adding assets." +msgstr "" +"Thỏa thuận này là bắt buộc, cần phải thiết lập khi thêm tài sản. Thỏa thuận này là mặc định, sẽ hiển thị tự động khi thêm tài sản. Thỏa thuận này là công khai, tài sản sẽ hiển thị thỏa thuận này cho người dùng và có thể kết nối sử dụng. \n" +"\n" +"Trợ giúp. \n" +"\n" +"Chọn. \n" +"\n" +"Tự động hóa. \n" +"\n" +"Khi truy cập tài sản, hãy sử dụng tài khoản đăng nhập, sau đó tự động chuyển sang tài khoản khác, giống như đăng nhập bằng tài khoản thông thường rồi chuyển sang tài khoản root. \n" +"\n" +"Tài sản có thể được kết nối qua gateway khu vực. \n" +"\n" +"Tên miền mặc định. \n" +"\n" +"Loại – trường này là bắt buộc. \n" +"\n" +"Thỏa thuận là bắt buộc. \n" +"\n" +"Kiểm tra khả năng kết nối tài sản. \n" +"\n" +"Thu thập thông tin phần cứng của tài sản. \n" +"\n" +"Tài sản thực hiện tự động hóa. \n" +"\n" +"Chưa sử dụng." + +#: assets/serializers/platform.py:106 +msgid "" +"This protocol is default, when adding assets, it will be displayed by " +"default." +msgstr "Thỏa thuận này là mặc định, khi thêm tài sản, sẽ hiển thị mặc định." + +#: assets/serializers/platform.py:109 +msgid "This protocol is public, asset will show this protocol to user" +msgstr "" +"Thỏa thuận này là công khai, tài sản sẽ được hiển thị cho người dùng, và có " +"thể kết nối để sử dụng. Hỗ trợ lựa chọn Action, trong khi truy cập tài sản " +"bằng tài khoản đăng nhập, sau đó sẽ tự động chuyển đổi sang tài khoản khác, " +"giống như cách đăng nhập bằng tài khoản thông thường rồi chuyển sang tài " +"khoản root. Tài sản có thể kết nối qua cổng mạng khu vực. Miền mặc định. " +"Loại. Trường này là bắt buộc. Thỏa thuận là bắt buộc. Kiểm tra tính kết nối " +"của tài sản. Thu thập thông tin phần cứng của tài sản. Tài sản thực hiện " +"Action. Chưa sử dụng. Danh sách mã hóa là char. Danh sách mã hóa là text." + +#: assets/serializers/platform.py:162 +msgid "Help text" +msgstr "Giúp đỡ" + +#: assets/serializers/platform.py:163 +msgid "Choices" +msgstr "Lựa chọn" + +#: assets/serializers/platform.py:175 +msgid "Automation" +msgstr "Tự động hóa" + +#: assets/serializers/platform.py:204 +msgid "" +"Login with account when accessing assets, then automatically switch to " +"another, similar to logging in with a regular account and then switching to " +"root" +msgstr "" +"Khi truy cập tài sản, sử dụng tài khoản đăng nhập, sau đó tự động chuyển đổi" +" sang một tài khoản khác, giống như việc đăng nhập bằng tài khoản thông " +"thường rồi chuyển sang root" + +#: assets/serializers/platform.py:210 +msgid "Assets can be connected using a zone gateway" +msgstr "Tài sản có thể kết nối qua cổng khu vực" + +#: assets/serializers/platform.py:212 +msgid "Default zone" +msgstr "Tên miền mặc định" + +#: assets/serializers/platform.py:239 +msgid "type is required" +msgstr "Loại: trường này là bắt buộc." + +#: assets/serializers/platform.py:254 +msgid "Protocols is required" +msgstr "Giao thức là bắt buộc" + +#: assets/signal_handlers/asset.py:26 assets/tasks/ping.py:39 +msgid "Test assets connectivity " +msgstr "Kiểm tra khả năng kết nối của tài sản" + +#: assets/signal_handlers/asset.py:36 +msgid "Gather asset hardware info" +msgstr "Thu thập thông tin phần cứng của tài sản" + +#: assets/tasks/automation.py:25 +msgid "Asset execute automation" +msgstr "Tài sản thực hiện tự động hóa" + +#: assets/tasks/automation.py:27 orgs/tasks.py:11 terminal/tasks.py:33 +msgid "Unused" +msgstr "Chưa sử dụng" + +#: assets/tasks/gather_facts.py:22 assets/tasks/gather_facts.py:32 +msgid "Gather assets facts" +msgstr "Thu thập thông tin tài sản" + +#: assets/tasks/gather_facts.py:25 +msgid "" +"When clicking 'Refresh hardware info' in 'Console - Asset Details - Basic' this task \n" +" will be executed" +msgstr "" +"Khi nhấp vào cập nhật thông tin phần cứng trong chi tiết tài sản của bảng " +"điều khiển, thực hiện nhiệm vụ này" + +#: assets/tasks/gather_facts.py:44 +msgid "Update assets hardware info: " +msgstr "Cập nhật thông tin phần cứng tài sản" + +#: assets/tasks/gather_facts.py:52 +msgid "Update node asset hardware information: " +msgstr "Cập nhật thông tin phần cứng tài sản của nút:" + +#: assets/tasks/nodes_amount.py:16 +msgid "Check the amount of assets under the node" +msgstr "Kiểm tra số lượng tài sản dưới nút" + +#: assets/tasks/nodes_amount.py:18 +msgid "" +"Manually verifying asset quantities updates the asset count for nodes under the \n" +" current organization. This task will be called in the following two cases: when updating \n" +" nodes and when the number of nodes exceeds 100" +msgstr "" +"So sánh thủ công số lượng tài sản để cập nhật số lượng tài sản của nút dưới " +"tổ chức hiện tại; cập nhật nút, trong trường hợp số lượng nút lớn hơn 100, " +"sẽ gọi nhiệm vụ này" + +#: assets/tasks/nodes_amount.py:34 +msgid "" +"The task of self-checking is already running and cannot be started " +"repeatedly" +msgstr "Chương trình tự kiểm tra đã được kích hoạt, không thể khởi động lại" + +#: assets/tasks/nodes_amount.py:40 +msgid "Periodic check the amount of assets under the node" +msgstr "Kiểm tra định kỳ số lượng tài sản dưới nút" + +#: assets/tasks/nodes_amount.py:42 +msgid "" +"Schedule the check_node_assets_amount_task to periodically update the asset count of \n" +" all nodes under all organizations" +msgstr "" +"Định kỳ gọi nhiệm vụ check_node_assets_amount_task, cập nhật số lượng tài " +"sản của tất cả các nút dưới tất cả các tổ chức" + +#: assets/tasks/ping.py:20 assets/tasks/ping.py:30 +msgid "Test assets connectivity" +msgstr "Kiểm tra khả năng kết nối tài sản" + +#: assets/tasks/ping.py:24 +msgid "" +"When clicking 'Test Asset Connectivity' in 'Asset Details - Basic Settings' " +"this task will be executed" +msgstr "" +"Khi nhấp vào kiểm tra khả năng kết nối tài sản trong chi tiết tài sản - cài " +"đặt cơ bản, thực hiện nhiệm vụ này" + +#: assets/tasks/ping.py:46 +msgid "Test if the assets under the node are connectable " +msgstr "Kiểm tra xem tài sản dưới nút có thể kết nối hay không" + +#: assets/tasks/ping_gateway.py:19 assets/tasks/ping_gateway.py:29 +#: assets/tasks/ping_gateway.py:38 +msgid "Test gateways connectivity" +msgstr "Kiểm tra khả năng kết nối của cổng" + +#: assets/tasks/ping_gateway.py:23 +msgid "" +"When clicking 'Test Connection' in 'Domain Details - Gateway' this task will" +" be executed" +msgstr "" +"Khi thực hiện nhiệm vụ này tại chi tiết miền - cổng - kiểm tra kết nối" + +#: assets/tasks/utils.py:16 +msgid "Asset has been disabled, skipped: {}" +msgstr "Tài sản đã bị vô hiệu hóa, bỏ qua: {}" + +#: assets/tasks/utils.py:20 +msgid "Asset may not be support ansible, skipped: {}" +msgstr "Tài sản có thể không hỗ trợ Ansible, bỏ qua: {}" + +#: assets/tasks/utils.py:38 +msgid "For security, do not push user {}" +msgstr "Vì lý do an toàn, không cho phép đẩy người dùng {}" + +#: assets/tasks/utils.py:54 +msgid "No assets matched, stop task" +msgstr "Không tìm thấy tài sản nào, kết thúc nhiệm vụ" + +#: audits/apps.py:9 +msgid "App Audits" +msgstr "Activities" + +#: audits/backends/db.py:17 +msgid "" +"The text content is too long. Use Elasticsearch to store operation logs" +msgstr "" +"Nội dung văn bản quá dài. Vui lòng sử dụng Elasticsearch để lưu trữ nhật ký " +"hoạt động" + +#: audits/backends/db.py:78 +msgid "labels" +msgstr "Nhãn" + +#: audits/backends/db.py:79 +msgid "operate_log_id" +msgstr "ID nhật ký hoạt động" + +#: audits/backends/db.py:111 ops/models/variable.py:19 +msgid "Tips" +msgstr "Thông báo" + +#: audits/const.py:12 +msgid "Mkdir" +msgstr "Tạo thư mục" + +#: audits/const.py:13 +msgid "Rmdir" +msgstr "Xóa thư mục" + +#: audits/const.py:14 audits/const.py:25 +#: authentication/templates/authentication/_access_key_modal.html:65 +#: rbac/tree.py:292 +msgid "Delete" +msgstr "Xóa" + +#: audits/const.py:15 +msgid "Upload" +msgstr "Tải lên" + +#: audits/const.py:16 +msgid "Rename" +msgstr "Đổi tên" + +#: audits/const.py:17 +msgid "Symlink" +msgstr "Tạo liên kết mềm" + +#: audits/const.py:18 audits/const.py:29 +#: ops/templates/ops/celery_task_log.html:86 +#: terminal/api/session/session.py:155 +msgid "Download" +msgstr "Tải xuống" + +#: audits/const.py:19 +msgid "Rename dir" +msgstr "Liên kết thư mục" + +#: audits/const.py:23 rbac/tree.py:290 terminal/api/session/session.py:285 +#: terminal/templates/terminal/_msg_command_warning.html:18 +#: terminal/templates/terminal/_msg_session_sharing.html:10 +#: xpack/plugins/cloud/manager.py:102 +msgid "View" +msgstr "Xem" + +#: audits/const.py:26 +#: authentication/templates/authentication/_access_key_modal.html:22 +#: rbac/tree.py:289 +msgid "Create" +msgstr "Tạo" + +#: audits/const.py:27 templates/_csv_import_export.html:8 +msgid "Export" +msgstr "Xuất" + +#: audits/const.py:30 +msgid "Connect" +msgstr "Kết nối" + +#: audits/const.py:31 authentication/templates/authentication/login.html:334 +#: authentication/templates/authentication/login.html:407 +#: templates/_header_bar.html:101 +msgid "Login" +msgstr "Sign in" + +#: audits/const.py:36 rbac/tree.py:59 +msgid "Notifications" +msgstr "Thông báo" + +#: audits/const.py:38 tickets/const.py:46 +msgid "Approve" +msgstr "Đồng ý" + +#: audits/const.py:42 ops/models/celery.py:85 +#: terminal/models/session/sharing.py:126 tickets/const.py:26 +#: xpack/plugins/cloud/const.py:74 +msgid "Finished" +msgstr "Kết thúc" + +#: audits/const.py:47 settings/serializers/terminal.py:6 +#: terminal/models/applet/host.py:26 terminal/models/component/terminal.py:185 +#: terminal/models/virtualapp/provider.py:14 +#: terminal/serializers/session.py:65 terminal/serializers/session.py:180 +msgid "Terminal" +msgstr "Thiết bị đầu cuối" + +#: audits/const.py:52 audits/models.py:139 +msgid "Operate log" +msgstr "Nhật ký hành động" + +#: audits/const.py:53 +msgid "Session log" +msgstr "Nhật ký phiên" + +#: audits/const.py:54 +msgid "Login log" +msgstr "Nhật ký đăng nhập" + +#: audits/const.py:55 rbac/tree.py:67 terminal/models/applet/host.py:144 +#: terminal/models/component/task.py:22 +#: xpack/plugins/cloud/serializers/account.py:80 +msgid "Task" +msgstr "Nhiệm vụ" + +#: audits/const.py:61 +msgid "-" +msgstr "-" + +#: audits/handler.py:128 +msgid "Yes" +msgstr "Là" + +#: audits/models.py:48 +msgid "Job audit log" +msgstr "Nhật ký kiểm tra công việc" + +#: audits/models.py:57 audits/models.py:107 audits/models.py:182 +#: audits/models.py:333 authentication/models/connection_token.py:61 +#: terminal/models/session/session.py:36 +#: terminal/models/session/sharing.py:111 +msgid "Remote addr" +msgstr "Địa chỉ xa" + +#: audits/models.py:62 audits/serializers.py:61 +msgid "Operate" +msgstr "Hành động" + +#: audits/models.py:64 +msgid "Filename" +msgstr "Tên tệp" + +#: audits/models.py:67 +msgid "Can Download" +msgstr "Có thể tải xuống" + +#: audits/models.py:68 terminal/backends/command/models.py:21 +#: terminal/models/session/replay.py:9 terminal/models/session/sharing.py:20 +#: terminal/models/session/sharing.py:93 terminal/serializers/command.py:19 +#: terminal/templates/terminal/_msg_command_alert.html:10 +#: terminal/templates/terminal/_msg_command_warning.html:17 +#: tickets/models/ticket/command_confirm.py:16 +msgid "Session" +msgstr "Phiên" + +#: audits/models.py:71 +msgid "File transfer log" +msgstr "Truyền tệp" + +#: audits/models.py:101 audits/serializers.py:109 +msgid "Resource Type" +msgstr "Loại tài nguyên" + +#: audits/models.py:102 audits/models.py:105 audits/models.py:151 +#: audits/serializers.py:108 labels/serializers.py:46 +msgid "Resource" +msgstr "Tài nguyên" + +#: audits/models.py:108 audits/models.py:154 audits/models.py:184 +#: audits/models.py:338 audits/serializers.py:232 +#: terminal/serializers/command.py:75 +msgid "Datetime" +msgstr "Ngày" + +#: audits/models.py:147 +msgid "Activity type" +msgstr "Loại hoạt động" + +#: audits/models.py:160 +msgid "Detail ID" +msgstr "Chi tiết ID" + +#: audits/models.py:164 +msgid "Activity log" +msgstr "Nhật ký hoạt động" + +#: audits/models.py:180 +msgid "Change by" +msgstr "Người chỉnh sửa" + +#: audits/models.py:190 +msgid "Password change log" +msgstr "Nhật ký thay đổi mật khẩu" + +#: audits/models.py:206 audits/models.py:292 +msgid "Login type" +msgstr "Phương thức đăng nhập" + +#: audits/models.py:208 audits/models.py:288 +#: tickets/models/ticket/login_confirm.py:12 +msgid "Login IP" +msgstr "Đăng nhập IP" + +#: audits/models.py:216 audits/serializers.py:75 +#: authentication/templates/authentication/_mfa_confirm_modal.html:14 +#: users/forms/profile.py:64 users/models/user/__init__.py:88 +#: users/serializers/profile.py:63 +msgid "MFA" +msgstr "MFA" + +#: audits/models.py:219 terminal/models/session/sharing.py:123 +#: xpack/plugins/cloud/manager.py:188 xpack/plugins/cloud/models.py:236 +msgid "Reason" +msgstr "Nguyên nhân" + +#: audits/models.py:226 +#: authentication/templates/authentication/_msg_different_city.html:10 +#: tickets/models/ticket/login_confirm.py:14 +msgid "Login Date" +msgstr "Ngày đăng nhập" + +#: audits/models.py:228 audits/models.py:293 +msgid "Auth backend" +msgstr "Mã xác thực" + +#: audits/models.py:281 +msgid "User login log" +msgstr "Nhật ký đăng nhập người dùng" + +#: audits/models.py:289 +msgid "Session key" +msgstr "Danh tính phiên làm việc" + +#: audits/models.py:294 +msgid "Login date" +msgstr "Ngày đăng nhập" + +#: audits/models.py:325 +msgid "User session" +msgstr "Phiên làm việc người dùng" + +#: audits/models.py:327 +msgid "Offline user session" +msgstr "Phiên làm việc người dùng đã ngắt kết nối" + +#: audits/models.py:334 +msgid "Application" +msgstr "Ứng dụng" + +#: audits/models.py:335 +msgid "Application ID" +msgstr "ID ứng dụng" + +#: audits/serializers.py:33 ops/models/adhoc.py:24 ops/models/base.py:16 +#: ops/models/base.py:53 ops/models/celery.py:87 ops/models/job.py:156 +#: ops/models/job.py:239 ops/models/playbook.py:30 ops/models/variable.py:17 +#: terminal/models/session/sharing.py:25 +msgid "Creator" +msgstr "Người tạo" + +#: audits/serializers.py:39 ops/serializers/celery.py:33 +msgid "Execution cycle" +msgstr "Thực hiện theo chu kỳ" + +#: audits/serializers.py:92 +msgid "Reason display" +msgstr "Mô tả nguyên nhân" + +#: audits/serializers.py:93 audits/serializers.py:210 +msgid "Auth backend display" +msgstr "Phương thức xác thực" + +#: audits/serializers.py:157 +msgid "%s %s this resource" +msgstr "Người dùng %s %s tài nguyên hiện tại" + +#: audits/serializers.py:198 authentication/models/connection_token.py:52 +#: authentication/models/temp_token.py:14 perms/models/asset_permission.py:80 +#: tickets/models/ticket/apply_application.py:31 +#: tickets/models/ticket/apply_asset.py:21 users/models/user/__init__.py:107 +msgid "Date expired" +msgstr "Ngày hết hạn" + +#: audits/serializers.py:229 terminal/models/component/terminal.py:91 +#: terminal/serializers/command.py:76 +msgid "Remote Address" +msgstr "Địa chỉ từ xa" + +#: audits/signal_handlers/activity_log.py:27 +msgid "User %s use account %s login asset %s" +msgstr "Người dùng %s đăng nhập tài sản %s bằng tài khoản %s" + +#: audits/signal_handlers/activity_log.py:35 +msgid "User %s login system %s" +msgstr "Người dùng %s đăng nhập vào hệ thống %s" + +#: audits/signal_handlers/activity_log.py:65 +msgid "User %s perform a task for this resource: %s" +msgstr "Người dùng %s đã thực hiện nhiệm vụ (%s) trên tài nguyên hiện tại" + +#: audits/signal_handlers/login_log.py:33 +msgid "SSH Key" +msgstr "Khóa SSH" + +#: audits/signal_handlers/login_log.py:35 settings/serializers/auth/sso.py:13 +msgid "SSO" +msgstr "SSO" + +#: audits/signal_handlers/login_log.py:36 +msgid "Auth Token" +msgstr "Mã xác thực" + +#: audits/signal_handlers/login_log.py:37 authentication/notifications.py:73 +#: authentication/utils.py:114 notifications/backends/__init__.py:11 +#: settings/serializers/auth/wecom.py:11 settings/serializers/auth/wecom.py:16 +#: users/models/user/__init__.py:131 users/models/user/_source.py:21 +msgid "WeCom" +msgstr "WeChat doanh nghiệp" + +#: audits/signal_handlers/login_log.py:38 authentication/utils.py:126 +#: authentication/views/feishu.py:97 notifications/backends/__init__.py:14 +#: settings/serializers/auth/feishu.py:12 +#: settings/serializers/auth/feishu.py:14 users/models/user/__init__.py:137 +#: users/models/user/_source.py:23 +msgid "FeiShu" +msgstr "Feishu" + +#: audits/signal_handlers/login_log.py:40 authentication/utils.py:138 +#: authentication/views/slack.py:79 notifications/backends/__init__.py:16 +#: settings/serializers/auth/slack.py:11 settings/serializers/auth/slack.py:13 +#: users/models/user/__init__.py:143 users/models/user/_source.py:25 +msgid "Slack" +msgstr "Slack" + +#: audits/signal_handlers/login_log.py:41 authentication/utils.py:120 +#: authentication/views/dingtalk.py:152 notifications/backends/__init__.py:12 +#: settings/serializers/auth/dingtalk.py:11 users/models/user/__init__.py:134 +#: users/models/user/_source.py:22 +msgid "DingTalk" +msgstr "DingTalk" + +#: audits/signal_handlers/login_log.py:42 +#: authentication/models/temp_token.py:17 +msgid "Temporary token" +msgstr "Mật khẩu tạm thời" + +#: audits/signal_handlers/login_log.py:43 authentication/const.py:37 +#: authentication/utils.py:144 settings/serializers/auth/passkey.py:8 +#: settings/serializers/auth/passkey.py:11 +msgid "Passkey" +msgstr "Khóa truy cập" + +#: audits/tasks.py:134 +msgid "Clean audits session task log" +msgstr "Dọn dẹp nhật ký nhiệm vụ kiểm toán tài sản" + +#: audits/tasks.py:136 +msgid "" +"Since the system generates login logs, operation logs, file upload logs, activity \n" +" logs, Celery execution logs, session recordings, command records, and password change \n" +" logs, it will perform cleanup of records that exceed the time limit according to the \n" +" 'Tasks - Regular clean-up' in the system settings at 2 a.m daily" +msgstr "" +"Do hệ thống sẽ tạo ra nhật ký đăng nhập, nhật ký hoạt động, nhật ký tải lên " +"tệp, nhật ký hoạt động, nhật ký thực hiện celery, ghi hình phiên làm việc và" +" ghi chép lệnh, nhật ký thay đổi mật khẩu, vì vậy hệ thống sẽ theo cài đặt " +"hệ thống - danh sách nhiệm vụ - định kỳ dọn dẹp cấu hình, đối với những thứ " +"vượt quá thời gian sẽ được dọn dẹp vào lúc 2 giờ sáng mỗi ngày" + +#: audits/tasks.py:156 +msgid "Upload FTP file to external storage" +msgstr "Tải lên tệp FTP vào bộ nhớ bên ngoài" + +#: audits/tasks.py:158 +msgid "" +"If SERVER_REPLAY_STORAGE is configured, files uploaded through file management will be \n" +" synchronized to external storage" +msgstr "" +"Nếu đã thiết lập SERVER_REPLAY_STORAGE, các tệp được tải lên sẽ được đồng bộ" +" đến bộ nhớ bên ngoài thông qua quản lý tệp" + +#: authentication/api/access_key.py:39 +msgid "Access keys can be created at most 10" +msgstr "Tối đa có thể tạo 10 khóa truy cập" + +#: authentication/api/common.py:34 settings/serializers/auth/sms.py:122 +msgid "The value in the parameter must contain %s" +msgstr "Giá trị trong tham số phải bao gồm %s" + +#: authentication/api/confirm.py:51 +msgid "This action require verify your MFA" +msgstr "" +"Thao tác này yêu cầu xác thực MFA của bạn, vui lòng bật và cấu hình trước" + +#: authentication/api/connection_token.py:304 +msgid "Reusable connection token is not allowed, global setting not enabled" +msgstr "" +"Không cho phép sử dụng mã thông báo kết nối có thể tái sử dụng, chưa kích " +"hoạt cài đặt toàn cầu" + +#: authentication/api/connection_token.py:425 +msgid "Anonymous account is not supported for this asset" +msgstr "Tài khoản ẩn danh không hỗ trợ tài sản hiện tại" + +#: authentication/api/connection_token.py:455 +msgid "Permission expired" +msgstr "Quyền truy cập đã hết hạn" + +#: authentication/api/connection_token.py:488 +msgid "ACL action is reject: {}({})" +msgstr "Hành động ACL là từ chối: {}({})" + +#: authentication/api/connection_token.py:492 +msgid "ACL action is review" +msgstr "Hành động ACL là xem xét" + +#: authentication/api/connection_token.py:502 +msgid "ACL action is face verify" +msgstr "Hành động ACL là xác thực khuôn mặt" + +#: authentication/api/connection_token.py:507 +msgid "ACL action not supported for this asset" +msgstr "Quy tắc đăng nhập tài sản không hỗ trợ tài sản hiện tại." + +#: authentication/api/connection_token.py:514 +msgid "ACL action is face online" +msgstr "Hành động ACL là nhận diện khuôn mặt trực tuyến" + +#: authentication/api/connection_token.py:533 +msgid "No available face feature" +msgstr "Không có đặc điểm khuôn mặt khả dụng" + +#: authentication/api/face.py:99 authentication/mfa/face.py:22 +#: authentication/mfa/face.py:24 users/views/profile/face.py:72 +msgid "Facial comparison failed" +msgstr "So sánh khuôn mặt thất bại" + +#: authentication/api/mfa.py:61 +msgid "Current user not support mfa type: {}" +msgstr "Người dùng hiện tại không hỗ trợ loại MFA: {}" + +#: authentication/api/password.py:34 authentication/backends/cas/views.py:22 +#: terminal/api/session/session.py:342 users/views/profile/reset.py:63 +msgid "User does not exist: {}" +msgstr "Người dùng không tồn tại: {}" + +#: authentication/api/password.py:34 users/views/profile/reset.py:166 +msgid "No user matched" +msgstr "Không tìm thấy người dùng khớp" + +#: authentication/api/password.py:38 +msgid "" +"The user is from {}, please go to the corresponding system to change the " +"password" +msgstr "" +"Người dùng đến từ {} hãy đi tới hệ thống tương ứng để thay đổi mật khẩu" + +#: authentication/api/password.py:69 +#: authentication/templates/authentication/login.html:399 +#: users/templates/users/forgot_password.html:41 +#: users/templates/users/forgot_password.html:42 +#: users/templates/users/forgot_password_previewing.html:13 +#: users/templates/users/forgot_password_previewing.html:14 +msgid "Forgot password" +msgstr "Quên mật khẩu" + +#: authentication/apps.py:7 +msgid "App Authentication" +msgstr "Authentication" + +#: authentication/backends/cas/views.py:24 +msgid "" +"CAS login was successful, but no corresponding local user was found in the " +"system, and automatic user creation is disabled in the CAS authentication " +"configuration. Login failed." +msgstr "" +"Đăng nhập CAS thành công, nhưng hệ thống không tìm thấy người dùng cục bộ, " +"và tính năng tự động tạo người dùng trong cấu hình xác thực CAS không được " +"kích hoạt, đăng nhập thất bại" + +#: authentication/backends/custom.py:60 +#: authentication/backends/oauth2/backends.py:158 +msgid "User invalid, disabled or expired" +msgstr "Người dùng không hợp lệ, đã bị vô hiệu hóa hoặc đã hết hạn" + +#: authentication/backends/drf.py:60 +msgid "Invalid token header. No credentials provided." +msgstr "" +"Tiêu đề token không hợp lệ. Không cung cấp bất kỳ thông tin xác thực nào." + +#: authentication/backends/drf.py:63 +msgid "Invalid token header. Sign string should not contain spaces." +msgstr "" +"Tiêu đề token không hợp lệ. Chuỗi ký hiệu không nên chứa khoảng trắng." + +#: authentication/backends/drf.py:69 +msgid "" +"Invalid token header. Sign string should not contain invalid characters." +msgstr "" +"Tiêu đề token không hợp lệ. Chuỗi ký hiệu không nên chứa ký tự không hợp lệ." + +#: authentication/backends/drf.py:82 +msgid "Invalid token or cache refreshed." +msgstr "Token làm mới hoặc bộ nhớ cache không hợp lệ." + +#: authentication/backends/oidc/views.py:175 +msgid "OpenID Error" +msgstr "Lỗi OpenID." + +#: authentication/backends/oidc/views.py:176 +#: authentication/backends/saml2/views.py:283 +msgid "Please check if a user with the same username or email already exists" +msgstr "" +"Vui lòng kiểm tra xem có người dùng nào đã tồn tại với tên tài khoản hoặc " +"email giống nhau hay không" + +#: authentication/backends/passkey/api.py:40 +msgid "Only register passkey for local user" +msgstr "Chỉ cho phép đăng ký khóa cho người dùng địa phương" + +#: authentication/backends/passkey/api.py:71 +msgid "Auth failed" +msgstr "Xác thực không thành công" + +#: authentication/backends/passkey/fido.py:151 +msgid "This key is not registered" +msgstr "Khóa này chưa được đăng ký" + +#: authentication/backends/passkey/models.py:13 +msgid "Added on" +msgstr "Bổ sung" + +#: authentication/backends/passkey/models.py:15 +msgid "Credential ID" +msgstr "Mã xác thực ID" + +#: authentication/backends/saml2/views.py:282 +msgid "SAML2 Error" +msgstr "Lỗi SAML2" + +#: authentication/confirm/password.py:17 +msgid "Authentication failed password incorrect" +msgstr "Xác thực không thành công (tên tài khoản hoặc mật khẩu không đúng)" + +#: authentication/confirm/relogin.py:11 +msgid "Login time has exceeded {} minutes, please login again" +msgstr "Thời gian đăng nhập đã vượt quá {} phút, vui lòng đăng nhập lại" + +#: authentication/const.py:32 +msgid "OTP" +msgstr "MFA ảo" + +#: authentication/const.py:33 authentication/serializers/password_mfa.py:16 +#: authentication/serializers/password_mfa.py:24 +#: settings/serializers/auth/sms.py:18 settings/serializers/auth/sms.py:36 +#: users/forms/profile.py:104 users/forms/profile.py:111 +#: users/templates/users/forgot_password.html:157 +#: users/views/profile/reset.py:100 +msgid "SMS" +msgstr "Tin nhắn SMS" + +#: authentication/const.py:35 +msgid "Face recognition" +msgstr "Nhận diện khuôn mặt" + +#: authentication/const.py:36 settings/serializers/auth/radius.py:14 +#: settings/serializers/auth/radius.py:16 +msgid "Radius" +msgstr "Radius" + +#: authentication/const.py:38 +msgid "Custom" +msgstr "Tùy chỉnh" + +#: authentication/errors/const.py:18 +msgid "Username/password check failed" +msgstr "Kiểm tra tên tài khoản/mật khẩu không thành công" + +#: authentication/errors/const.py:19 +msgid "Password decrypt failed" +msgstr "Mật khẩu giải mã thất bại" + +#: authentication/errors/const.py:20 +msgid "MFA failed" +msgstr "Kiểm tra MFA thất bại" + +#: authentication/errors/const.py:21 +msgid "MFA unset" +msgstr "MFA chưa được thiết lập" + +#: authentication/errors/const.py:22 +msgid "Username does not exist" +msgstr "Tên người dùng không tồn tại" + +#: authentication/errors/const.py:24 +msgid "Disabled or expired" +msgstr "Bị vô hiệu hóa hoặc hết hạn" + +#: authentication/errors/const.py:25 +msgid "This account is inactive." +msgstr "Tài khoản này đã bị vô hiệu hóa" + +#: authentication/errors/const.py:26 +msgid "This account is expired" +msgstr "Tài khoản này đã hết hạn" + +#: authentication/errors/const.py:27 +msgid "Auth backend not match" +msgstr "Không tìm thấy backend xác thực tương ứng" + +#: authentication/errors/const.py:28 +msgid "ACL is not allowed" +msgstr "Kiểm soát truy cập đăng nhập không được phép" + +#: authentication/errors/const.py:29 +msgid "Only local users are allowed" +msgstr "Chỉ cho phép người dùng địa phương" + +#: authentication/errors/const.py:39 +msgid "No session found, check your cookie" +msgstr "Phiên đã thay đổi, làm mới trang" + +#: authentication/errors/const.py:41 +msgid "" +"The username or password you entered is incorrect, please enter it again. " +"You can also try {times_try} times (The account will be temporarily locked " +"for {block_time} minutes)" +msgstr "" +"Tên người dùng hoặc mật khẩu bạn nhập không đúng, vui lòng nhập lại. Bạn còn" +" có thể thử {times_try} lần nữa (tài khoản sẽ bị khóa tạm thời trong " +"{block_time} phút)" + +#: authentication/errors/const.py:47 authentication/errors/const.py:55 +msgid "" +"The account has been locked (please contact admin to unlock it or try again " +"after {} minutes)" +msgstr "" +"Tài khoản đã bị khóa (vui lòng liên hệ với quản trị viên để mở khóa hoặc thử" +" lại sau {} phút)" + +#: authentication/errors/const.py:51 +msgid "" +"The address has been locked (please contact admin to unlock it or try again " +"after {} minutes)" +msgstr "" +"IP đã bị khóa (vui lòng liên hệ với quản trị viên để mở khóa hoặc thử lại " +"sau {} phút)" + +#: authentication/errors/const.py:59 +#, python-brace-format +msgid "" +"{error}, You can also try {times_try} times (The account will be temporarily" +" locked for {block_time} minutes)" +msgstr "" +"{error} You can also try {times_try} times (The account will be temporarily " +"locked for {block_time} minutes)" + +#: authentication/errors/const.py:63 +msgid "MFA required" +msgstr "Cần xác thực MFA." + +#: authentication/errors/const.py:64 +msgid "MFA not set, please set it first" +msgstr "MFA chưa được thiết lập, vui lòng hoàn thành việc thiết lập trước" + +#: authentication/errors/const.py:65 +msgid "Login confirm required" +msgstr "Cần đăng nhập để kiểm tra" + +#: authentication/errors/const.py:66 +msgid "Wait login confirm ticket for accept" +msgstr "Đang chờ xử lý kiểm tra đăng nhập" + +#: authentication/errors/const.py:67 +msgid "Login confirm ticket was {}" +msgstr "Kiểm tra đăng nhập: {}" + +#: authentication/errors/failed.py:149 +msgid "Current login is prohibited by ACL rules" +msgstr "Quy tắc ACL hiện tại cấm đăng nhập" + +#: authentication/errors/failed.py:154 +msgid "Please enter MFA code" +msgstr "Vui lòng nhập mã xác minh MFA" + +#: authentication/errors/failed.py:159 +msgid "Please enter SMS code" +msgstr "Vui lòng nhập mã xác minh qua tin nhắn" + +#: authentication/errors/failed.py:164 users/exceptions.py:14 +msgid "Phone not set" +msgstr "Số điện thoại chưa được thiết lập" + +#: authentication/errors/mfa.py:8 +msgid "SSO auth closed" +msgstr "Xác thực SSO đã tắt" + +#: authentication/errors/mfa.py:18 authentication/views/wecom.py:47 +msgid "WeCom is already bound" +msgstr "WeChat doanh nghiệp đã được liên kết" + +#: authentication/errors/mfa.py:23 authentication/views/wecom.py:144 +#: authentication/views/wecom.py:186 +msgid "WeCom is not bound" +msgstr "Chưa liên kết WeChat doanh nghiệp" + +#: authentication/errors/mfa.py:28 authentication/views/dingtalk.py:206 +#: authentication/views/dingtalk.py:248 +msgid "DingTalk is not bound" +msgstr "DingTalk chưa được liên kết" + +#: authentication/errors/mfa.py:33 authentication/views/feishu.py:132 +msgid "FeiShu is not bound" +msgstr "Chưa liên kết Feishu" + +#: authentication/errors/mfa.py:38 authentication/views/lark.py:48 +msgid "Lark is not bound" +msgstr "Lark chưa được liên kết" + +#: authentication/errors/mfa.py:43 authentication/views/slack.py:121 +msgid "Slack is not bound" +msgstr "Slack chưa được liên kết" + +#: authentication/errors/mfa.py:48 +msgid "Your password is invalid" +msgstr "Mật khẩu của bạn không hợp lệ" + +#: authentication/errors/mfa.py:53 +msgid "Please wait for %s seconds before retry" +msgstr "Vui lòng thử lại sau %s giây" + +#: authentication/errors/redirect.py:85 authentication/mixins.py:332 +#: users/views/profile/reset.py:224 +msgid "Your password is too simple, please change it for security" +msgstr "Mật khẩu của bạn quá đơn giản, để đảm bảo an toàn, vui lòng thay đổi" + +#: authentication/errors/redirect.py:93 authentication/mixins.py:341 +msgid "You should to change your password before login" +msgstr "Trước khi hoàn tất đăng nhập, vui lòng thay đổi mật khẩu" + +#: authentication/errors/redirect.py:101 authentication/mixins.py:350 +msgid "Your password has expired, please reset before logging in" +msgstr "Mật khẩu của bạn đã hết hạn, hãy thay đổi rồi mới đăng nhập" + +#: authentication/forms.py:34 +msgid "Auto-login" +msgstr "Remember me" + +#: authentication/forms.py:52 +msgid "MFA Code" +msgstr "Mã xác thực MFA" + +#: authentication/forms.py:53 +msgid "MFA type" +msgstr "Loại MFA" + +#: authentication/forms.py:61 +#: authentication/templates/authentication/_captcha_field.html:15 +msgid "Captcha" +msgstr "Mã xác thực" + +#: authentication/forms.py:66 authentication/mfa/email.py:41 +#: authentication/templates/authentication/_msg_mfa_email_code.html:12 +#: users/forms/profile.py:28 +msgid "MFA code" +msgstr "Mã xác thực MFA" + +#: authentication/forms.py:68 +msgid "Dynamic code" +msgstr "Mã động" + +#: authentication/mfa/base.py:9 +msgid "Please input security code" +msgstr "Vui lòng nhập mã an ninh động" + +#: authentication/mfa/base.py:32 +msgid "" +"The two-factor code you entered has either already been used or has expired." +" Please request a new one." +msgstr "" +"Mã xác thực kép bạn nhập đã được sử dụng hoặc đã hết hạn. Vui lòng yêu cầu " +"mã xác thực kép mới." + +#: authentication/mfa/custom.py:21 +msgid "MFA Custom code invalid" +msgstr "Kiểm tra mã xác thực MFA tùy chỉnh không thành công" + +#: authentication/mfa/custom.py:27 +msgid "MFA custom verification code" +msgstr "Mã xác thực MFA tùy chỉnh" + +#: authentication/mfa/custom.py:57 +msgid "MFA custom global enabled, cannot disable" +msgstr "MFA tùy chỉnh đã được mở toàn cầu, không thể bị vô hiệu hóa." + +#: authentication/mfa/email.py:11 +msgid "Email verify code invalid" +msgstr "Xác thực mã xác minh qua email thất bại" + +#: authentication/mfa/email.py:17 +msgid "Email verification code" +msgstr "Mã xác minh qua email" + +#: authentication/mfa/face.py:56 +msgid "Bind face to enable" +msgstr "Gắn kết đặc trưng khuôn mặt để kích hoạt" + +#: authentication/mfa/face.py:60 +msgid "Unbind face to disable" +msgstr "Gỡ bỏ đặc trưng khuôn mặt để vô hiệu hóa" + +#: authentication/mfa/otp.py:7 +msgid "OTP code invalid, or server time error" +msgstr "" +"Mã xác minh MFA ảo không đúng, hoặc thời gian phía máy chủ không chính xác" + +#: authentication/mfa/otp.py:13 +msgid "OTP verification code" +msgstr "Mã xác minh MFA ảo" + +#: authentication/mfa/otp.py:48 +msgid "Virtual OTP based MFA" +msgstr "MFA ảo (OTP)" + +#: authentication/mfa/passkey.py:44 authentication/mfa/passkey.py:48 +msgid "Using passkey as MFA" +msgstr "Sử dụng Passkey làm MFA" + +#: authentication/mfa/radius.py:8 +msgid "Radius verify code invalid" +msgstr "Xác thực Radius thất bại" + +#: authentication/mfa/radius.py:14 +msgid "Radius verification code" +msgstr "Mã bảo mật động Radius" + +#: authentication/mfa/radius.py:45 +msgid "Radius global enabled, cannot disable" +msgstr "MFA Radius được bật toàn cầu, không thể vô hiệu hóa" + +#: authentication/mfa/sms.py:9 +msgid "SMS verify code invalid" +msgstr "Xác thực mã xác minh qua tin nhắn thất bại" + +#: authentication/mfa/sms.py:15 +msgid "SMS verification code" +msgstr "Mã xác minh qua tin nhắn" + +#: authentication/mfa/sms.py:64 +msgid "Set phone number to enable" +msgstr "Cài đặt số điện thoại để kích hoạt" + +#: authentication/mfa/sms.py:68 +msgid "Clear phone number to disable" +msgstr "Xóa số điện thoại để vô hiệu hóa." + +#: authentication/middleware.py:96 settings/utils/ldap.py:711 +msgid "Authentication failed (before login check failed): {}" +msgstr "Xác thực không thành công (Kiểm tra trước khi đăng nhập thất bại): {}" + +#: authentication/mixins.py:84 +msgid "User is invalid" +msgstr "Người dùng không hợp lệ" + +#: authentication/mixins.py:99 +msgid "" +"The administrator has enabled 'Only allow login from user source'. \n" +" The current user source is {}. Please contact the administrator." +msgstr "" +"Quản trị viên đã bật 'Chỉ cho phép đăng nhập từ nguồn người dùng', nguồn " +"người dùng hiện tại là {}. Vui lòng liên hệ với quản trị viên." + +#: authentication/mixins.py:278 +msgid "The MFA type ({}) is not enabled" +msgstr "Phương thức MFA ({}) này chưa được kích hoạt" + +#: authentication/mixins.py:320 +msgid "Please change your password" +msgstr "Vui lòng thay đổi mật khẩu" + +#: authentication/models/connection_token.py:43 +#: terminal/serializers/storage.py:114 +msgid "Account name" +msgstr "Tên tài khoản" + +#: authentication/models/connection_token.py:44 +msgid "Input username" +msgstr "Tên người dùng tùy chỉnh" + +#: authentication/models/connection_token.py:45 +#: authentication/serializers/connection_token.py:19 +msgid "Input secret" +msgstr "Mật khẩu tùy chỉnh" + +#: authentication/models/connection_token.py:46 +#: authentication/serializers/connect_token_secret.py:118 +#: terminal/models/applet/applet.py:43 +#: terminal/models/virtualapp/virtualapp.py:24 +#: terminal/serializers/session.py:31 terminal/serializers/session.py:58 +#: terminal/serializers/storage.py:71 +msgid "Protocol" +msgstr "Giao thức" + +#: authentication/models/connection_token.py:47 +msgid "Connect method" +msgstr "Phương thức kết nối" + +#: authentication/models/connection_token.py:49 +msgid "User display" +msgstr "Tên người dùng" + +#: authentication/models/connection_token.py:50 +msgid "Asset display" +msgstr "Tên tài sản" + +#: authentication/models/connection_token.py:51 +msgid "Reusable" +msgstr "Có thể được sử dụng lại" + +#: authentication/models/connection_token.py:56 +#: perms/models/asset_permission.py:83 +msgid "From ticket" +msgstr "Từ phiếu công việc" + +#: authentication/models/connection_token.py:58 +msgid "Face monitor token" +msgstr "Mã thông báo giám sát khuôn mặt." + +#: authentication/models/connection_token.py:72 +msgid "Can expire connection token" +msgstr "Có thể làm mất hiệu lực mã thông báo kết nối" + +#: authentication/models/connection_token.py:73 +msgid "Can reuse connection token" +msgstr "Có thể tái sử dụng mã thông báo kết nối" + +#: authentication/models/connection_token.py:75 +msgid "Connection token" +msgstr "Mã thông báo kết nối" + +#: authentication/models/connection_token.py:166 +msgid "Connection token inactive" +msgstr "Mã thông báo kết nối chưa được kích hoạt" + +#: authentication/models/connection_token.py:170 +msgid "Connection token expired at: {}" +msgstr "Mã thông báo kết nối đã hết hạn: {}" + +#: authentication/models/connection_token.py:173 +#: terminal/serializers/session.py:151 +msgid "No user or invalid user" +msgstr "Không có người dùng hoặc người dùng đã hết hiệu lực" + +#: authentication/models/connection_token.py:176 +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" + +#: authentication/models/connection_token.py:344 +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" + +#: authentication/models/connection_token.py:346 +msgid "Super connection token" +msgstr "Siêu mã thông báo kết nối" + +#: authentication/models/connection_token.py:363 +msgid "Admin connection token" +msgstr "Mã thông báo kết nối quản trị" + +#: authentication/models/private_token.py:11 +msgid "Private Token" +msgstr "Mã thông báo riêng tư" + +#: authentication/models/ssh_key.py:15 terminal/serializers/storage.py:146 +#: users/models/user/__init__.py:95 +#: xpack/plugins/cloud/serializers/account_attrs.py:244 +msgid "Private key" +msgstr "Khóa ssh riêng" + +#: authentication/models/ssh_key.py:18 settings/serializers/terminal.py:38 +#: users/forms/profile.py:175 users/models/user/__init__.py:98 +#: xpack/plugins/cloud/serializers/account_attrs.py:241 +msgid "Public key" +msgstr "Khóa công khai SSH" + +#: authentication/models/sso_token.py:15 +msgid "Expired" +msgstr "Thời gian hết hạn" + +#: authentication/models/sso_token.py:20 +msgid "SSO token" +msgstr "mã thông báo SSO." + +#: authentication/models/temp_token.py:12 +msgid "Verified" +msgstr "Đã kiểm tra" + +#: authentication/notifications.py:19 +msgid "Different city login reminder" +msgstr "Nhắc nhở đăng nhập từ xa" + +#: authentication/notifications.py:52 +msgid "binding reminder" +msgstr "Nhắc nhở liên kết" + +#: authentication/serializers/connect_token_secret.py:120 +msgid "Is builtin" +msgstr "Builtin" + +#: authentication/serializers/connect_token_secret.py:124 +msgid "Options" +msgstr "Tùy chọn" + +#: authentication/serializers/connect_token_secret.py:131 +#: ops/notifications.py:19 rbac/tree.py:63 +msgid "Component" +msgstr "Thành phần" + +#: authentication/serializers/connect_token_secret.py:140 +msgid "Domain" +msgstr "Tên miền" + +#: authentication/serializers/connect_token_secret.py:142 +msgid "Expired now" +msgstr "Ngừng hiệu lực ngay lập tức" + +#: authentication/serializers/connect_token_secret.py:175 +#: terminal/models/virtualapp/virtualapp.py:25 +msgid "Image name" +msgstr "Tên hình ảnh" + +#: authentication/serializers/connect_token_secret.py:176 +#: terminal/models/virtualapp/virtualapp.py:27 +msgid "Image port" +msgstr "Cổng hình ảnh" + +#: authentication/serializers/connect_token_secret.py:177 +#: terminal/models/virtualapp/virtualapp.py:26 +msgid "Image protocol" +msgstr "Giao thức hình ảnh" + +#: authentication/serializers/connection_token.py:17 +msgid "Expired time" +msgstr "Thời gian hết hạn" + +#: authentication/serializers/connection_token.py:21 +msgid "Ticket info" +msgstr "Thông tin công việc" + +#: authentication/serializers/connection_token.py:22 +#: perms/models/asset_permission.py:77 +#: tickets/models/ticket/apply_application.py:28 +#: tickets/models/ticket/apply_asset.py:19 +msgid "Actions" +msgstr "Action" + +#: authentication/serializers/connection_token.py:45 +#: perms/serializers/permission.py:65 perms/serializers/permission.py:86 +#: users/serializers/user.py:127 users/serializers/user.py:261 +msgid "Is expired" +msgstr "Expired" + +#: authentication/serializers/connection_token.py:46 +#: orgs/mixins/serializers.py:26 rbac/serializers/rolebinding.py:27 +msgid "Org name" +msgstr "Organization" + +#: authentication/serializers/password_mfa.py:29 +#: users/templates/users/forgot_password.html:153 +msgid "The {} cannot be empty" +msgstr "{} không được để trống" + +#: authentication/serializers/ssh_key.py:16 +msgid "Automatically Generate Key Pair" +msgstr "Tự động tạo cặp khóa" + +#: authentication/serializers/ssh_key.py:18 +msgid "Import Existing Key Pair" +msgstr "Nhập vào cặp khóa đã có" + +#: authentication/serializers/ssh_key.py:31 +msgid "Create Type" +msgstr "Loại tạo" + +#: authentication/serializers/ssh_key.py:33 +msgid "" +"Please download the private key after creation. Each private key can only be" +" downloaded once" +msgstr "" +"Sau khi tạo hoàn tất, vui lòng tải về khóa riêng, mỗi khóa riêng chỉ có một " +"lần cơ hội tải về" + +#: authentication/serializers/ssh_key.py:57 users/forms/profile.py:164 +#: users/serializers/profile.py:130 users/serializers/profile.py:160 +msgid "Not a valid ssh public key" +msgstr "SSH khóa không hợp lệ" + +#: authentication/serializers/token.py:92 perms/serializers/permission.py:64 +#: perms/serializers/permission.py:87 users/serializers/user.py:128 +#: users/serializers/user.py:258 +msgid "Is valid" +msgstr "Is Valid" + +#: authentication/tasks.py:19 +msgid "Clean expired session" +msgstr "Xóa phiên đã hết hạn" + +#: authentication/tasks.py:21 +msgid "" +"Since user logins create sessions, the system will clean up expired sessions" +" every 24 hours" +msgstr "" +"Do người dùng đăng nhập vào hệ thống sẽ tạo ra phiên, hệ thống sẽ tự động " +"dọn dẹp các phiên đã hết hạn sau mỗi 24 giờ" + +#: authentication/tasks.py:30 +msgid "Clean expired temporary, connection tokens" +msgstr "Dọn dẹp mật khẩu tạm thời và mã thông báo kết nối đã hết hạn" + +#: authentication/tasks.py:32 +msgid "" +"When connecting to assets or generating temporary passwords, the system " +"creates corresponding connection tokens or temporary credential records. To " +"maintain security and manage storage, the system automatically deletes " +"expired tokens every day at 2:00 AM based on the retention settings " +"configured under System settings > Security > User password > Token " +"Retention Period" +msgstr "" +"Hệ thống sẽ tạo ra mã thông báo kết nối hoặc ghi chú mật khẩu tạm thời tương" +" ứng khi kết nối tài sản hoặc tạo mật khẩu tạm thời. Để đảm bảo an ninh hệ " +"thống và kiểm soát lượng dữ liệu lưu trữ, hệ thống sẽ tự động dọn dẹp tất cả" +" các ghi chú mã thông báo đã hết hạn theo cấu hình trong “Cài đặt bảo mật > " +"An toàn mật khẩu > Thời gian lưu giữ mã thông báo” vào lúc 2 giờ sáng mỗi " +"ngày" + +#: authentication/templates/authentication/_access_key_modal.html:6 +msgid "API key list" +msgstr "Danh sách API Key" + +#: authentication/templates/authentication/_access_key_modal.html:18 +msgid "Using api key sign api header, every requests header difference" +msgstr "" +"Sử dụng API key để ký xác thực trong tiêu đề yêu cầu, mỗi tiêu đề yêu cầu " +"đều khác nhau" + +#: authentication/templates/authentication/_access_key_modal.html:19 +msgid "docs" +msgstr "Tài liệu" + +#: authentication/templates/authentication/_access_key_modal.html:48 +msgid "Show" +msgstr "Hiển thị" + +#: authentication/templates/authentication/_access_key_modal.html:66 +#: settings/serializers/terminal.py:24 users/const.py:42 +#: users/templates/users/user_verify_mfa.html:36 +msgid "Disable" +msgstr "Vô hiệu hóa" + +#: authentication/templates/authentication/_access_key_modal.html:67 +#: settings/serializers/terminal.py:24 users/const.py:43 +#: users/templates/users/mfa_setting.html:120 +#: users/templates/users/mfa_setting.html:158 +#: users/templates/users/mfa_setting.html:177 +msgid "Enable" +msgstr "Kích hoạt" + +#: authentication/templates/authentication/_access_key_modal.html:147 +msgid "Delete success" +msgstr "Xóa thành công" + +#: authentication/templates/authentication/_captcha_field.html:8 +msgid "Play CAPTCHA as audio file" +msgstr "Mã xác thực ngôn ngữ" + +#: authentication/templates/authentication/_mfa_confirm_modal.html:5 +msgid "MFA confirm" +msgstr "Xác minh MFA" + +#: authentication/templates/authentication/_mfa_confirm_modal.html:17 +msgid "Need MFA for view auth" +msgstr "Cần xác minh MFA để xem thông tin tài khoản" + +#: authentication/templates/authentication/_mfa_confirm_modal.html:20 +#: authentication/templates/authentication/auth_fail_flash_message_standalone.html:37 +#: templates/_modal.html:23 templates/flash_message_standalone.html:37 +#: templates/redirect_confirm.html:39 +#: users/templates/users/user_password_verify.html:20 +msgid "Confirm" +msgstr "Xác nhận" + +#: authentication/templates/authentication/_mfa_confirm_modal.html:25 +msgid "Code error" +msgstr "Mã không chính xác" + +#: authentication/templates/authentication/_msg_different_city.html:3 +#: authentication/templates/authentication/_msg_mfa_email_code.html:9 +#: authentication/templates/authentication/_msg_oauth_bind.html:3 +#: authentication/templates/authentication/_msg_reset_password.html:3 +#: authentication/templates/authentication/_msg_reset_password_code.html:9 +#: jumpserver/conf.py:543 +#: perms/templates/perms/_msg_item_permissions_expire.html:3 +#: tickets/templates/tickets/approve_check_password.html:32 +#: users/templates/users/_msg_account_expire_reminder.html:4 +#: users/templates/users/_msg_password_expire_reminder.html:4 +#: users/templates/users/_msg_reset_ssh_key.html:4 +msgid "Hello" +msgstr "Xin chào" + +#: authentication/templates/authentication/_msg_different_city.html:6 +msgid "Your account has remote login behavior, please pay attention" +msgstr "Tài khoản của bạn có hành vi đăng nhập từ xa, hãy chú ý." + +#: authentication/templates/authentication/_msg_different_city.html:14 +msgid "" +"If you suspect that the login behavior is abnormal, please modify the " +"account password in time." +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 " +"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 +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" + +#: authentication/templates/authentication/_msg_oauth_bind.html:11 +#: notifications/notifications.py:203 +#: settings/templates/ldap/_msg_import_ldap_user.html:3 +msgid "Time" +msgstr "Thời gian" + +#: authentication/templates/authentication/_msg_oauth_bind.html:17 +msgid "If the operation is not your own, unbind and change the password." +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 " +"mật khẩu" + +#: authentication/templates/authentication/_msg_reset_password.html:6 +msgid "" +"Please click the link below to reset your password, if not your request, " +"concern your account security" +msgstr "" +"Vui lòng nhấp vào liên kết bên dưới để đặt lại mật khẩu, nếu không phải bạn " +"yêu cầu, hãy chú ý đến an toàn tài khoản" + +#: authentication/templates/authentication/_msg_reset_password.html:10 +msgid "Click here reset password" +msgstr "Nhấp vào đây để đặt lại mật khẩu" + +#: authentication/templates/authentication/_msg_reset_password.html:15 +#: users/templates/users/_msg_user_created.html:20 +msgid "This link is valid for 1 hour. After it expires" +msgstr "Liên kết này có hiệu lực trong 1 giờ, quá thời gian bạn có thể" + +#: authentication/templates/authentication/_msg_reset_password.html:16 +#: users/templates/users/_msg_user_created.html:21 +msgid "request new one" +msgstr "Cài đặt lại" + +#: authentication/templates/authentication/_msg_reset_password_code.html:12 +#: terminal/models/session/sharing.py:27 terminal/models/session/sharing.py:95 +#: terminal/templates/terminal/_msg_session_sharing.html:12 +#: users/forms/profile.py:108 users/templates/users/forgot_password.html:98 +msgid "Verify code" +msgstr "Mã xác nhận" + +#: authentication/templates/authentication/_msg_reset_password_code.html:15 +msgid "" +"Copy the verification code to the Reset Password page to reset the password." +msgstr "Sao chép mã xác nhận vào trang đặt lại mật khẩu, để đặt lại mật khẩu." + +#: authentication/templates/authentication/_msg_rest_password_success.html:5 +msgid "Your password has just been successfully updated" +msgstr "Mật khẩu của bạn vừa được cập nhật thành công" + +#: authentication/templates/authentication/_msg_rest_password_success.html:9 +#: authentication/templates/authentication/_msg_rest_public_key_success.html:9 +msgid "Browser" +msgstr "Trình duyệt" + +#: authentication/templates/authentication/_msg_rest_password_success.html:12 +msgid "" +"If the password update was not initiated by you, your account may have " +"security issues" +msgstr "" +"Nếu lần cập nhật mật khẩu này không phải do bạn thực hiện, tài khoản của bạn" +" có thể gặp vấn đề về bảo mật" + +#: authentication/templates/authentication/_msg_rest_password_success.html:13 +#: authentication/templates/authentication/_msg_rest_public_key_success.html:13 +msgid "If you have any questions, you can contact the administrator" +msgstr "" +"Nếu có thắc mắc hoặc yêu cầu, vui lòng liên hệ với quản trị viên hệ thống" + +#: authentication/templates/authentication/_msg_rest_public_key_success.html:5 +msgid "Your public key has just been successfully updated" +msgstr "Khóa công khai của bạn vừa được cập nhật thành công" + +#: authentication/templates/authentication/_msg_rest_public_key_success.html:12 +msgid "" +"If the public key update was not initiated by you, your account may have " +"security issues" +msgstr "" +"Nếu lần cập nhật khóa công khai này không phải do bạn thực hiện, tài khoản " +"của bạn có thể gặp vấn đề về bảo mật" + +#: authentication/templates/authentication/auth_fail_flash_message_standalone.html:28 +#: templates/flash_message_standalone.html:28 +#: templates/redirect_confirm.html:34 tickets/const.py:19 +msgid "Cancel" +msgstr "Hủy bỏ" + +#: authentication/templates/authentication/face_capture.html:14 +msgid "Retry" +msgstr "Thử lại" + +#: authentication/templates/authentication/login.html:313 +msgid "" +"Configuration file has problems and cannot be logged in. Please contact the " +"administrator or view latest docs" +msgstr "" +"Có vấn đề với tệp cấu hình, không thể đăng nhập, vui lòng liên hệ với quản " +"trị viên hoặc xem tài liệu mới nhất" + +#: authentication/templates/authentication/login.html:314 +msgid "If you are administrator, you can update the config resolve it, set" +msgstr "" +"Nếu bạn là quản trị viên, bạn có thể cập nhật tệp cấu hình để giải quyết, " +"thiết lập thông số cấu hình" + +#: authentication/templates/authentication/login.html:422 +msgid "More login options" +msgstr "Or" + +#: authentication/templates/authentication/login_mfa.html:6 +msgid "MFA Auth" +msgstr "MFA Xác thực đa yếu tố" + +#: authentication/templates/authentication/login_mfa.html:19 +#: users/templates/users/user_otp_check_password.html:12 +#: users/templates/users/user_otp_enable_bind.html:24 +#: users/templates/users/user_otp_enable_install_app.html:31 +#: users/templates/users/user_verify_mfa.html:30 +msgid "Next" +msgstr "Bước tiếp theo" + +#: authentication/templates/authentication/login_mfa.html:22 +msgid "Can't provide security? Please contact the administrator!" +msgstr "" +"Nếu không thể cung cấp mã xác thực MFA, xin vui lòng liên hệ với quản trị " +"viên!" + +#: authentication/templates/authentication/login_wait_confirm.html:72 +msgid "Refresh" +msgstr "Làm mới" + +#: authentication/templates/authentication/login_wait_confirm.html:77 +msgid "Copy link" +msgstr "Sao chép liên kết" + +#: authentication/templates/authentication/login_wait_confirm.html:82 +msgid "Return" +msgstr "Quay lại" + +#: authentication/templates/authentication/login_wait_confirm.html:150 +msgid "Copy success" +msgstr "Sao chép thành công" + +#: authentication/templates/authentication/passkey.html:166 +msgid "" +"This page is not served over HTTPS. Please use HTTPS to ensure security of " +"your credentials." +msgstr "" +"Trang này chưa sử dụng giao thức HTTPS, hãy sử dụng giao thức HTTPS để bảo " +"đảm an toàn cho thông tin đăng nhập của bạn." + +#: authentication/templates/authentication/passkey.html:177 +msgid "Do you want to retry ?" +msgstr "Có muốn thử lại không?" + +#: authentication/utils.py:27 common/utils/ip/geoip/utils.py:35 +#: xpack/plugins/cloud/const.py:35 +msgid "LAN" +msgstr "Mạng nội bộ" + +#: authentication/views/base.py:71 +#: perms/templates/perms/_msg_permed_items_expire.html:18 +msgid "If you have any question, please contact the administrator" +msgstr "" +"Nếu có bất kỳ câu hỏi hoặc nhu cầu nào, xin vui lòng liên hệ với quản trị " +"viên hệ thống" + +#: authentication/views/base.py:144 +msgid "%s query user failed" +msgstr "%s truy vấn người dùng không thành công" + +#: authentication/views/base.py:152 +msgid "The %s is already bound to another user" +msgstr "%s đã được liên kết với một người dùng khác" + +#: authentication/views/base.py:159 +msgid "Binding %s successfully" +msgstr "Liên kết %s thành công" + +#: authentication/views/dingtalk.py:42 +msgid "DingTalk Error, Please contact your system administrator" +msgstr "Lỗi DingTalk, xin vui lòng liên hệ với quản trị viên hệ thống" + +#: authentication/views/dingtalk.py:45 authentication/views/dingtalk.py:205 +msgid "DingTalk Error" +msgstr "Lỗi DingTalk" + +#: authentication/views/dingtalk.py:53 +msgid "DingTalk is already bound" +msgstr "DingTalk đã được liên kết." + +#: authentication/views/dingtalk.py:122 +msgid "Invalid user_id" +msgstr "User ID không hợp lệ" + +#: authentication/views/dingtalk.py:138 +msgid "DingTalk query user failed" +msgstr "Truy vấn người dùng của DingTalk thất bại" + +#: authentication/views/dingtalk.py:146 +msgid "The DingTalk is already bound to another user" +msgstr "Tài khoản DingTalk đã được liên kết với người dùng khác" + +#: authentication/views/dingtalk.py:153 +msgid "Binding DingTalk successfully" +msgstr "Liên kết DingTalk thành công" + +#: authentication/views/dingtalk.py:207 authentication/views/dingtalk.py:242 +msgid "Failed to get user from DingTalk" +msgstr "Không thể lấy người dùng từ DingTalk" + +#: authentication/views/dingtalk.py:249 +msgid "Please login with a password and then bind the DingTalk" +msgstr "Vui lòng đăng nhập bằng mật khẩu và sau đó liên kết với DingTalk" + +#: authentication/views/feishu.py:43 authentication/views/feishu.py:131 +msgid "FeiShu Error" +msgstr "Lỗi Feishu" + +#: authentication/views/feishu.py:44 +msgid "FeiShu is already bound" +msgstr "Feishu đã được liên kết" + +#: authentication/views/feishu.py:133 +msgid "Failed to get user from FeiShu" +msgstr "Không thể lấy người dùng từ Feishu" + +#: authentication/views/lark.py:19 authentication/views/lark.py:47 +msgid "Lark Error" +msgstr "Lỗi Lark" + +#: authentication/views/lark.py:20 +msgid "Lark is already bound" +msgstr "Lark đã được liên kết" + +#: authentication/views/lark.py:49 +msgid "Failed to get user from Lark" +msgstr "Không thể lấy người dùng từ Lark" + +#: authentication/views/login.py:163 +msgid "Redirecting" +msgstr "Đang chuyển hướng" + +#: authentication/views/login.py:164 +msgid "Redirecting to {} authentication" +msgstr "Đang chuyển hướng tới {} xác thực" + +#: authentication/views/login.py:191 +msgid "Login timeout, please try again." +msgstr "Thời gian đăng nhập đã hết, vui lòng đăng nhập lại." + +#: authentication/views/login.py:236 +msgid "User email already exists ({})" +msgstr "Email người dùng đã tồn tại ({})" + +#: authentication/views/login.py:329 +msgid "" +"Wait for {} confirm, You also can copy link to her/him
\n" +" Don't close this page" +msgstr "" +"Đang chờ {} xác nhận, bạn cũng có thể sao chép liên kết và gửi cho anh ấy/cô ấy
\n" +" Đừng đóng trang này" + +#: authentication/views/login.py:334 +msgid "No ticket found" +msgstr "Chưa phát hiện công việc" + +#: authentication/views/login.py:370 +msgid "Logout success" +msgstr "Đăng xuất thành công" + +#: authentication/views/login.py:371 +msgid "Logout success, return login page" +msgstr "Đăng xuất thành công, quay lại trang đăng nhập" + +#: authentication/views/mixins.py:39 +msgid "" +"For your safety, automatic redirection login is not supported on the client." +" If you need to open it in the client, please log in again" +msgstr "" +"Để đảm bảo an toàn, ứng dụng không hỗ trợ tự động chuyển hướng đăng nhập. " +"Nếu cần mở trong ứng dụng, vui lòng đăng nhập lại" + +#: authentication/views/slack.py:35 authentication/views/slack.py:120 +msgid "Slack Error" +msgstr "Lỗi Slack" + +#: authentication/views/slack.py:55 +msgid "Slack is already bound" +msgstr "Slack đã liên kết" + +#: authentication/views/slack.py:122 +msgid "Failed to get user from Slack" +msgstr "Lấy người dùng từ Slack thất bại" + +#: authentication/views/wecom.py:36 +msgid "WeCom Error, Please contact your system administrator" +msgstr "Lỗi WeChat Doanh Nghiệp, vui lòng liên hệ quản trị viên hệ thống" + +#: authentication/views/wecom.py:39 authentication/views/wecom.py:143 +msgid "WeCom Error" +msgstr "Lỗi WeChat Doanh Nghiệp" + +#: authentication/views/wecom.py:103 +msgid "Wecom" +msgstr "WeChat Doanh Nghiệp" + +#: authentication/views/wecom.py:145 authentication/views/wecom.py:180 +msgid "Failed to get user from WeCom" +msgstr "Lấy người dùng từ WeChat Doanh Nghiệp thất bại" + +#: authentication/views/wecom.py:187 +msgid "Please login with a password and then bind the WeCom" +msgstr "" +"Vui lòng đăng nhập bằng mật khẩu trước, rồi liên kết WeChat Doanh Nghiệp" + +#: common/api/action.py:68 +msgid "Request file format may be wrong" +msgstr "Định dạng tệp tải lên sai hoặc tệp thuộc loại tài nguyên khác." + +#: common/const/choices.py:40 +msgid "China" +msgstr "Trung Quốc" + +#: common/const/choices.py:57 +msgid "Manual" +msgstr "Kích hoạt thủ công" + +#: common/const/choices.py:58 +msgid "Timing" +msgstr "Kích hoạt theo thời gian" + +#: common/const/choices.py:64 ops/const.py:74 +msgid "Running" +msgstr "Đang chạy" + +#: common/const/choices.py:68 +msgid "Canceled" +msgstr "Hủy bỏ" + +#: common/const/choices.py:114 +msgid "Confirmed" +msgstr "Xác nhận" + +#: common/const/choices.py:122 terminal/models/applet/applet.py:31 +msgid "Community edition" +msgstr "Phiên bản cộng đồng" + +#: common/const/choices.py:123 +msgid "Basic edition" +msgstr "Phiên bản cơ bản doanh nghiệp" + +#: common/const/choices.py:124 +msgid "Standard edition" +msgstr "Phiên bản tiêu chuẩn doanh nghiệp" + +#: common/const/choices.py:125 +msgid "Professional edition" +msgstr "Phiên bản chuyên nghiệp doanh nghiệp" + +#: common/const/choices.py:126 +msgid "Ultimate edition" +msgstr "Phiên bản cao cấp doanh nghiệp" + +#: common/const/common.py:5 xpack/plugins/cloud/manager.py:453 +msgid "%(name)s was created successfully" +msgstr "%(name)s đã tạo thành công" + +#: common/const/common.py:6 +msgid "%(name)s was updated successfully" +msgstr "%(name)s đã cập nhật thành công" + +#: common/db/encoder.py:11 +msgid "gettext_lazy" +msgstr "gettext_lazy" + +#: common/db/fields.py:106 +msgid "Marshal dict data to char field" +msgstr "Mã hóa dict thành char" + +#: common/db/fields.py:110 +msgid "Marshal dict data to text field" +msgstr "" +"Mã hóa dict thành text <- SEP -> Mã hóa list thành char <- SEP -> Mã hóa " +"list thành text <- SEP -> Dữ liệu được mã hóa thành char <- SEP -> Dữ liệu " +"được mã hóa thành text <- SEP -> Trường đã được mã hóa <- SEP -> JSON nhiều-" +"một trường không hợp lệ, cần phải là {'type': 'all'} hoặc {'type': 'ids', " +"'ids': []} hoặc {'type': 'attrs', 'attrs': [{'name': 'ip', 'match': 'exact'," +" 'value': '1.1.1.1'}]} <- SEP -> Loại không hợp lệ, cần phải là all, ids " +"hoặc attrs <- SEP -> ID không hợp lệ, cần phải là danh sách <- SEP -> Trường" +" này là bắt buộc. <- SEP -> Thuộc tính không hợp lệ, cần phải là danh sách " +"dict <- SEP -> Thuộc tính không hợp lệ, phải có tên và giá trị <- SEP -> Bỏ " +"qua <- SEP -> Thời gian bỏ qua <- SEP -> Người cập nhật cuối cùng." + +#: common/db/fields.py:122 +msgid "Marshal list data to char field" +msgstr "Danh sách mã hóa là char" + +#: common/db/fields.py:126 +msgid "Marshal list data to text field" +msgstr "Danh sách mã hóa là text." + +#: common/db/fields.py:130 +msgid "Marshal data to char field" +msgstr "Dữ liệu mã hóa dưới dạng char" + +#: common/db/fields.py:134 +msgid "Marshal data to text field" +msgstr "dữ liệu mã hóa dưới dạng text" + +#: common/db/fields.py:167 +msgid "Encrypt field using Secret Key" +msgstr "trường đã được mã hóa" + +#: common/db/fields.py:578 +msgid "" +"Invalid JSON data for JSONManyToManyField, should be like {'type': 'all'} or" +" {'type': 'ids', 'ids': []} or {'type': 'attrs', 'attrs': [{'name': 'ip', " +"'match': 'exact', 'value': '1.1.1.1'}}" +msgstr "" +"Trường JSON nhiều vào nhiều không hợp lệ, phải là {'type': 'all'} hoặc " +"{'type': 'ids', 'ids': []} hoặc {'type': 'attrs', 'attrs': [{'name': 'ip', " +"'match': 'exact', 'value': '1.1.1.1'}}" + +#: common/db/fields.py:585 +msgid "Invalid type, should be \"all\", \"ids\" or \"attrs\"" +msgstr "Loại không hợp lệ, phải là all, ids hoặc attrs" + +#: common/db/fields.py:588 +msgid "Invalid ids for ids, should be a list" +msgstr "ID không hợp lệ, phải là danh sách" + +#: common/db/fields.py:590 common/db/fields.py:595 +#: common/serializers/fields.py:146 terminal/serializers/session.py:89 +#: tickets/serializers/ticket/common.py:58 +#: xpack/plugins/cloud/serializers/account_attrs.py:20 +#: xpack/plugins/cloud/serializers/account_attrs.py:71 +#: xpack/plugins/cloud/serializers/account_attrs.py:95 +#: xpack/plugins/cloud/serializers/account_attrs.py:181 +msgid "This field is required." +msgstr "Trường này là bắt buộc." + +#: common/db/fields.py:593 common/db/fields.py:598 +msgid "Invalid attrs, should be a list of dict" +msgstr "Thuộc tính không hợp lệ, phải là danh sách dict" + +#: common/db/fields.py:600 +msgid "Invalid attrs, should be has name and value" +msgstr "Thuộc tính không hợp lệ, cần có tên và giá trị" + +#: common/db/mixins.py:32 +msgid "is discard" +msgstr "Bỏ qua" + +#: common/db/mixins.py:33 +msgid "discard time" +msgstr "Thời gian bỏ qua" + +#: common/db/models.py:33 users/models/user/__init__.py:113 +msgid "Updated by" +msgstr "Người cập nhật cuối cùng" + +#: common/db/validators.py:9 +msgid "Invalid port range, should be like and within {}-{}" +msgstr "Dải cổng không hợp lệ, phải nằm trong khoảng {}-{}" + +#: common/drf/exc_handlers.py:28 +msgid "Object" +msgstr "Đối tượng" + +#: common/drf/metadata.py:131 +msgid "Org ID" +msgstr "Organization ID" + +#: common/drf/parsers/base.py:21 +msgid "The file content overflowed (The maximum length `{}` bytes)" +msgstr "Nội dung tập tin quá lớn (độ dài tối đa là `{}` byte)" + +#: common/drf/parsers/base.py:207 +msgid "Parse file error: {}" +msgstr "Lỗi phân tích tập tin: {}" + +#: common/drf/parsers/excel.py:14 +msgid "Invalid excel file" +msgstr "Tập tin excel không hợp lệ" + +#: common/drf/renders/base.py:140 +msgid "Yes/No" +msgstr "Có/Không" + +#: common/drf/renders/base.py:143 +msgid "Text, max length {}" +msgstr "Văn bản, độ dài tối đa {}" + +#: common/drf/renders/base.py:145 +msgid "Long text, no length limit" +msgstr "Văn bản dài, không giới hạn độ dài" + +#: common/drf/renders/base.py:147 +msgid "Number, min {} max {}" +msgstr "Số, tối thiểu {} tối đa {}" + +#: common/drf/renders/base.py:150 +msgid "Datetime format {}" +msgstr "Định dạng ngày giờ {}" + +#: common/drf/renders/base.py:156 +msgid "" +"Choices, format name(value), name is optional for human read, value is " +"requisite, options {}" +msgstr "" +"Tùy chọn, định dạng: Tên(Giá trị), tên là tùy chọn để dễ đọc, giá trị là bắt" +" buộc, tùy chọn có {}" + +#: common/drf/renders/base.py:159 +msgid "Choices, options {}" +msgstr "Tùy chọn, tùy chọn có {}" + +#: common/drf/renders/base.py:161 +msgid "Phone number, format +8612345678901" +msgstr "Số điện thoại, định dạng +8612345678901" + +#: common/drf/renders/base.py:163 +msgid "Label, format [\"key:value\"]" +msgstr "Nhãn, định dạng: [\"Khóa:Giá trị\"]" + +#: common/drf/renders/base.py:165 +msgid "" +"Object, format name(id), name is optional for human read, id is requisite" +msgstr "" +"Mục liên kết, định dạng: Tên(id), tên là tùy chọn để dễ đọc, id là bắt buộc." + +#: common/drf/renders/base.py:167 +msgid "Object, format id" +msgstr "Liên kết, định dạng là id" + +#: common/drf/renders/base.py:171 +msgid "" +"Objects, format [\"name(id)\", ...], name is optional for human read, id is " +"requisite" +msgstr "" +"nhiều liên kết, định dạng: [\"Tên(id)\", ...], tên là tùy chọn, thuận tiện " +"cho việc đọc, id là bắt buộc" + +#: common/drf/renders/base.py:173 +msgid "Labels, format [\"key:value\", ...], if label not exists, will create it" +msgstr "" +"nhãn, định dạng: [\"khóa:giá trị\", ...], nếu nhãn không tồn tại, sẽ được " +"tạo ra" + +#: common/drf/renders/base.py:175 +msgid "Objects, format [\"id\", ...]" +msgstr "nhiều liên kết, định dạng là [\"id\", ...]" + +#: common/drf/renders/base.py:275 +msgid "" +"{} - The encryption password has not been set - please go to personal " +"information -> file encryption password to set the encryption password" +msgstr "" +"{} - Chưa thiết lập mật khẩu mã hóa - Vui lòng đến thông tin cá nhân -> Mật " +"khẩu mã hóa tệp để thiết lập mật khẩu mã hóa" + +#: common/drf/renders/mixins.py:37 labels/serializers.py:22 +msgid "Resource count" +msgstr "Resource count" + +#: common/drf/renders/mixins.py:46 +msgid "Export all" +msgstr "Xuất tất cả" + +#: common/drf/renders/mixins.py:48 +msgid "Export only selected items" +msgstr "Chỉ xuất mục đã chọn" + +#: common/drf/renders/mixins.py:50 +msgid "Export filtered" +msgstr "Xuất tìm kiếm" + +#: common/exceptions.py:15 xpack/plugins/cloud/ws.py:37 +msgid "%s object does not exist." +msgstr "%s đối tượng không tồn tại" + +#: common/exceptions.py:25 +msgid "Someone else is doing this. Please wait for complete" +msgstr "Người khác đang thao tác, vui lòng chờ người khác hoàn thành" + +#: common/exceptions.py:30 +msgid "Your request timeout" +msgstr "Yêu cầu của bạn đã hết thời gian" + +#: common/exceptions.py:35 +msgid "M2M reverse not allowed" +msgstr "Quan hệ nhiều-nhiều ngược không được phép" + +#: common/exceptions.py:41 +msgid "Is referenced by other objects and cannot be deleted" +msgstr "Bị liên kết với đối tượng khác, không thể xóa" + +#: common/exceptions.py:51 +msgid "This action require confirm current user" +msgstr "Hành động này cần xác nhận người dùng hiện tại" + +#: common/exceptions.py:59 +msgid "Unexpect error occur" +msgstr "Đã xảy ra lỗi ngoài ý muốn." + +#: common/plugins/es.py:36 +msgid "Invalid elasticsearch config" +msgstr "Cấu hình Elasticsearch không hợp lệ" + +#: common/plugins/es.py:41 +msgid "Not Support Elasticsearch8" +msgstr "Không hỗ trợ Elasticsearch8" + +#: common/plugins/es.py:47 +msgid "" +"Connection failed: Self-signed certificate used. Please check server " +"certificate configuration" +msgstr "" +"Kết nối thất bại: đã sử dụng chứng chỉ tự ký, vui lòng kiểm tra cấu hình " +"chứng chỉ của máy chủ" + +#: common/sdk/im/exceptions.py:23 +msgid "Network error, please contact system administrator" +msgstr "Lỗi mạng, vui lòng liên hệ với quản trị viên hệ thống" + +#: common/sdk/im/slack/__init__.py:78 +msgid "Unknown error occur" +msgstr "Xảy ra lỗi không xác định" + +#: common/sdk/im/wecom/__init__.py:19 +msgid "WeCom error, please contact system administrator" +msgstr "Lỗi WeChat doanh nghiệp, vui lòng liên hệ với quản trị viên hệ thống" + +#: common/sdk/sms/alibaba.py:56 +msgid "Signature does not match" +msgstr "Chữ ký không khớp" + +#: common/sdk/sms/cmpp2.py:44 +msgid "sp_id is 6 bits" +msgstr "SP_id phải là 6 chữ số" + +#: common/sdk/sms/cmpp2.py:214 +msgid "Failed to connect to the CMPP gateway server, err: {}" +msgstr "Lỗi kết nối với máy chủ cổng, lỗi: {}" + +#: common/sdk/sms/custom_file.py:41 +msgid "The custom sms file is invalid" +msgstr "Tệp SMS tùy chỉnh không hợp lệ" + +#: common/sdk/sms/custom_file.py:47 +msgid "SMS sending failed[%s]: %s" +msgstr "Gửi SMS thất bại[%s]: %s" + +#: common/sdk/sms/endpoint.py:16 +msgid "Alibaba cloud" +msgstr "Aliyun" + +#: common/sdk/sms/endpoint.py:17 +msgid "Tencent cloud" +msgstr "Tencent Cloud" + +#: common/sdk/sms/endpoint.py:18 xpack/plugins/cloud/const.py:13 +msgid "Huawei Cloud" +msgstr "Huaweicloud" + +#: common/sdk/sms/endpoint.py:19 +msgid "CMPP v2.0" +msgstr "CMPP v2.0" + +#: common/sdk/sms/endpoint.py:21 +msgid "Custom type (File)" +msgstr "Custom (File)" + +#: common/sdk/sms/endpoint.py:32 +msgid "SMS provider not support: {}" +msgstr "Nhà cung cấp dịch vụ SMS không hỗ trợ: {}" + +#: common/sdk/sms/endpoint.py:54 +msgid "SMS verification code signature or template invalid" +msgstr "Chữ ký hoặc mẫu mã xác thực SMS không hợp lệ" + +#: common/sdk/sms/exceptions.py:8 +msgid "The verification code has expired. Please resend it" +msgstr "Mã xác thực đã hết hạn, vui lòng gửi lại" + +#: common/sdk/sms/exceptions.py:13 +msgid "The verification code is incorrect" +msgstr "Mã xác thực sai" + +#: common/sdk/sms/exceptions.py:18 +msgid "Please wait {} seconds before sending" +msgstr "Vui lòng gửi lại sau {} giây" + +#: common/serializers/common.py:90 +msgid "Children" +msgstr "Nút" + +#: common/serializers/common.py:98 +msgid "File" +msgstr "Tài liệu" + +#: common/serializers/fields.py:139 +msgid "Invalid data type" +msgstr "Dữ liệu không hợp lệ" + +#: common/serializers/fields.py:147 +msgid "Invalid pk \"{pk_value}\" - object does not exist." +msgstr "PK không hợp lệ \"{pk_value}\" - Đối tượng không tồn tại" + +#: common/serializers/fields.py:148 +msgid "Incorrect type. Expected pk value, received {data_type}." +msgstr "Loại lỗi. Mong đợi giá trị pk, nhận được {data_type}." + +#: common/serializers/fields.py:222 +msgid "Invalid data type, should be list" +msgstr "Loại dữ liệu lỗi, nên là danh sách" + +#: common/serializers/fields.py:237 +#: xpack/plugins/cloud/serializers/account.py:117 +#: xpack/plugins/cloud/serializers/task.py:122 +msgid "Invalid choice: {}" +msgstr "Tùy chọn không hợp lệ: {}" + +#: common/serializers/mixin.py:451 terminal/models/applet/applet.py:45 +#: terminal/models/virtualapp/virtualapp.py:29 +msgid "Tags" +msgstr "Nhãn" + +#: common/tasks.py:33 +msgid "Send email" +msgstr "Gửi email" + +#: common/tasks.py:36 +msgid "This task will be executed when sending email notifications" +msgstr "Thực hiện tác vụ này khi gửi thông điệp email." + +#: common/tasks.py:78 +msgid "Send email attachment" +msgstr "Gửi tệp đính kèm email" + +#: common/tasks.py:81 +msgid "" +"When an account password is changed or an account backup generates attachments, \n" +" this task needs to be executed for sending emails and handling attachments" +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 " +"gửi qua email, thực hiện nhiệm vụ này" + +#: common/tasks.py:107 +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" + +#: common/tasks.py:109 +msgid "" +"When performing an account backup, this task needs to be executed to " +"external storage (SFTP)" +msgstr "" +"Khi thực hiện sao lưu tài khoản, cần truy cập vào lưu trữ bên ngoài (sftp) " +"để thực hiện nhiệm vụ này" + +#: common/utils/ip/geoip/utils.py:37 +msgid "Invalid ip" +msgstr "IP không hợp lệ" + +#: common/utils/ip/utils.py:98 +msgid "Invalid address" +msgstr "Địa chỉ không hợp lệ" + +#: common/utils/translate.py:46 +msgid "Hello %s" +msgstr "Xin chào %s" + +#: common/utils/verify_code.py:17 +msgid "Send SMS code" +msgstr "Gửi mã xác nhận qua tin nhắn" + +#: common/utils/verify_code.py:19 +msgid "" +"When resetting a password, forgetting a password, or verifying MFA, this task needs to \n" +" be executed to send SMS messages" +msgstr "" +"Khi thiết lập lại mật khẩu, quên mật khẩu, và xác minh mfa, cần gửi tin nhắn" +" thì thực hiện nhiệm vụ này" + +#: common/validators.py:16 +msgid "Special char not allowed" +msgstr "Không được chứa ký tự đặc biệt" + +#: common/validators.py:42 +msgid "Should not contains special characters" +msgstr "Không được chứa ký tự đặc biệt" + +#: common/validators.py:47 +msgid "The mobile phone number format is incorrect" +msgstr "Định dạng số điện thoại không chính xác" + +#: common/views/msg.py:18 +msgid "Not found the code" +msgstr "Không tìm thấy mã" + +#: common/views/msg.py:22 +msgid "The message code provided is invalid or has expired" +msgstr "Mã tin nhắn cung cấp không hợp lệ hoặc đã hết hạn" + +#: jumpserver/conf.py:537 +msgid "The verification code is: {code}" +msgstr "Mã xác nhận là: {code}" + +#: jumpserver/conf.py:542 +msgid "Create account successfully" +msgstr "Tạo tài khoản thành công" + +#: jumpserver/conf.py:544 +msgid "Your account has been created successfully" +msgstr "Tài khoản của bạn đã được tạo thành công" + +#: jumpserver/context_processor.py:14 +msgid "JumpServer - An open-source PAM" +msgstr "JumpServer" + +#: jumpserver/views/celery_flower.py:22 +msgid "

Flower service unavailable, check it

" +msgstr "Dịch vụ Flower không khả dụng, vui lòng kiểm tra" + +#: jumpserver/views/other.py:30 +msgid "" +"
Luna is a separately deployed program, you need to deploy Luna, koko, " +"configure nginx for url distribution,
If you see this page, " +"prove that you are not accessing the nginx listening port. Good luck." +msgstr "" +"
Luna là một chương trình được triển khai riêng biệt, bạn cần triển khai" +" Luna, Koko.
Nếu bạn thấy trang này, chứng tỏ bạn đang truy cập " +"không phải là cổng mà nginx lắng nghe, chúc bạn may mắn.
" + +#: jumpserver/views/other.py:78 +msgid "Websocket server run on port: {}, you should proxy it on nginx" +msgstr "" +"Dịch vụ Websocket hoạt động trên cổng: {}, vui lòng kiểm tra xem nginx có " +"được cấu hình chuyển tiếp không" + +#: jumpserver/views/other.py:92 +msgid "" +"
Koko is a separately deployed program, you need to deploy Koko, " +"configure nginx for url distribution,
If you see this page, " +"prove that you are not accessing the nginx listening port. Good luck." +msgstr "" +"
Koko là một chương trình được triển khai riêng biệt, bạn cần triển khai" +" Koko, và đảm bảo cấu hình nginx chuyển tiếp,
Nếu bạn thấy trang " +"này, chứng tỏ bạn đang truy cập không phải là cổng mà nginx lắng nghe, chúc " +"bạn may mắn.
" + +#: labels/apps.py:8 +msgid "App Labels" +msgstr "Labels" + +#: labels/models.py:15 settings/serializers/security.py:211 +msgid "Color" +msgstr "Màu sắc" + +#: labels/models.py:20 labels/models.py:39 +msgid "Tag" +msgstr "Thẻ" + +#: labels/models.py:43 +msgid "Resource ID" +msgstr "ID tài nguyên" + +#: labels/models.py:49 +msgid "Tagged resource" +msgstr "Tài nguyên liên quan" + +#: labels/serializers.py:28 +msgid "Cannot contain \":,\"" +msgstr "Không thể chứa \":\"" + +#: labels/serializers.py:43 +msgid "Resource type" +msgstr "Loại tài nguyên" + +#: notifications/apps.py:7 +msgid "App Notifications" +msgstr "Thông báo Action" + +#: notifications/backends/__init__.py:13 +msgid "Site message" +msgstr "Tin nhắn nội bộ" + +#: notifications/models/notification.py:14 +msgid "receive backend" +msgstr "Hệ thống nhắn tin." + +#: notifications/models/notification.py:18 +msgid "User message" +msgstr "Người dùng tin nhắn" + +#: notifications/models/notification.py:21 +msgid "{} subscription" +msgstr "{} Đăng ký" + +#: notifications/models/notification.py:34 +msgid "System message" +msgstr "Thông tin hệ thống" + +#: notifications/notifications.py:47 +msgid "Publish the station message" +msgstr "Đăng bài tin nhắn trong hệ thống" + +#: notifications/notifications.py:49 +msgid "" +"This task needs to be executed for sending internal messages for system alerts, \n" +" work orders, and other notifications" +msgstr "" +"Một số cảnh báo của hệ thống, đơn đặt hàng, v.v. cần gửi tin nhắn trong hệ " +"thống sẽ thực hiện nhiệm vụ này" + +#: ops/ansible/inventory.py:126 ops/ansible/inventory.py:196 +#: ops/models/job.py:69 +msgid "No account available" +msgstr "Không có tài khoản nào khả dụng" + +#: ops/ansible/inventory.py:318 ops/ansible/inventory.py:360 +msgid "Ansible disabled" +msgstr "Ansible đã bị vô hiệu hóa" + +#: ops/ansible/inventory.py:376 +msgid "Skip hosts below:" +msgstr "Bỏ qua các máy chủ sau:" + +#: ops/api/celery.py:66 ops/api/celery.py:81 +msgid "Waiting task start" +msgstr "Chờ nhiệm vụ bắt đầu" + +#: ops/api/celery.py:269 +msgid "Task {} not found" +msgstr "Nhiệm vụ {} không tồn tại" + +#: ops/api/celery.py:276 +msgid "Task {} args or kwargs error" +msgstr "Nhiệm vụ {} có tham số thực thi không hợp lệ" + +#: ops/api/job.py:70 +msgid "" +"Asset ({asset}) must have at least one of the following protocols added: " +"SSH, SFTP, or WinRM" +msgstr "" +"Tài sản ({asset}) ít nhất phải thêm một trong các giao thức ssh, sftp, winrm" + +#: ops/api/job.py:71 +msgid "Asset ({asset}) authorization is missing SSH, SFTP, or WinRM protocol" +msgstr "Ủy quyền tài sản ({asset}) thiếu giao thức ssh, sftp hoặc winrm" + +#: ops/api/job.py:72 +msgid "Asset ({asset}) authorization lacks upload permissions" +msgstr "Ủy quyền tài sản ({asset}) thiếu quyền tải lên" + +#: ops/api/job.py:160 +msgid "Duplicate file exists" +msgstr "Có tệp cùng tên tồn tại" + +#: ops/api/job.py:165 +msgid "" +"File size exceeds maximum limit. Please select a file smaller than {limit}MB" +msgstr "" +"Kích thước tệp vượt quá giới hạn tối đa. Vui lòng chọn tệp nhỏ hơn " +"{limit}MB." + +#: ops/api/job.py:238 +msgid "" +"The task is being created and cannot be interrupted. Please try again later." +msgstr "Đang tạo nhiệm vụ, không thể ngắt quãng, xin vui lòng thử lại sau." + +#: ops/api/playbook.py:49 +msgid "Currently playbook is being used in a job" +msgstr "Playbook hiện tại đang được sử dụng trong tác vụ." + +#: ops/api/playbook.py:123 +msgid "Unsupported file content" +msgstr "Nội dung tệp không được hỗ trợ." + +#: ops/api/playbook.py:125 ops/api/playbook.py:171 ops/api/playbook.py:219 +msgid "Invalid file path" +msgstr "Đường dẫn tệp không hợp lệ." + +#: ops/api/playbook.py:197 +msgid "This file can not be rename" +msgstr "Tệp này không thể được đổi tên." + +#: ops/api/playbook.py:216 +msgid "File already exists" +msgstr "Tệp đã tồn tại." + +#: ops/api/playbook.py:234 +msgid "File key is required" +msgstr "Trường khóa tệp là bắt buộc." + +#: ops/api/playbook.py:237 +msgid "This file can not be delete" +msgstr "Không thể xóa tệp này." + +#: ops/apps.py:9 +msgid "App Ops" +msgstr "Trung tâm tác vụ." + +#: ops/const.py:8 +msgid "Push" +msgstr "Đẩy." + +#: ops/const.py:9 +msgid "Verify" +msgstr "Xác minh." + +#: ops/const.py:10 +msgid "Collect" +msgstr "Thu thập." + +#: ops/const.py:15 +msgid "Append SSH KEY" +msgstr "Thêm." + +#: ops/const.py:21 +msgid "Custom password" +msgstr "Mật khẩu tùy chỉnh." + +#: ops/const.py:22 +msgid "All assets use the same random password" +msgstr "Ngẫu nhiên một" + +#: ops/const.py:23 +msgid "All assets use different random password" +msgstr "mỗi người ngẫu nhiên" + +#: ops/const.py:34 +msgid "Blank" +msgstr "trống" + +#: ops/const.py:35 +msgid "VCS" +msgstr "VCS" + +#: ops/const.py:39 ops/models/adhoc.py:44 ops/models/variable.py:26 +msgid "Adhoc" +msgstr "lệnh" + +#: ops/const.py:40 ops/models/job.py:154 ops/models/playbook.py:89 +#: ops/models/variable.py:23 +msgid "Playbook" +msgstr "Playbook" + +#: ops/const.py:41 +msgid "Upload File" +msgstr "tải lên" + +#: ops/const.py:45 +msgid "Privileged only" +msgstr "chỉ dành cho tài khoản đặc quyền" + +#: ops/const.py:46 +msgid "Privileged first" +msgstr "ưu tiên tài khoản đặc quyền" + +#: ops/const.py:51 ops/const.py:62 +msgid "Shell" +msgstr "Shell" + +#: ops/const.py:52 ops/const.py:63 +msgid "Powershell" +msgstr "PowerShell" + +#: ops/const.py:53 ops/const.py:64 +msgid "Python" +msgstr "Python" + +#: ops/const.py:54 ops/const.py:65 +msgid "MySQL" +msgstr "MySQL" + +#: ops/const.py:55 ops/const.py:67 +msgid "PostgreSQL" +msgstr "PostgreSQL" + +#: ops/const.py:56 ops/const.py:68 +msgid "SQLServer" +msgstr "SQLServer" + +#: ops/const.py:57 ops/const.py:70 +msgid "Raw" +msgstr "Raw" + +#: ops/const.py:58 +msgid "HUAWEI" +msgstr "Huawei" + +#: ops/const.py:66 +msgid "MariaDB" +msgstr "MariaDB" + +#: ops/const.py:69 +msgid "Oracle" +msgstr "Oracle" + +#: ops/const.py:76 +msgid "Timeout" +msgstr "Thời gian chờ" + +#: ops/const.py:83 +msgid "Command execution disabled" +msgstr "Lệnh thực thi đã bị vô hiệu hóa" + +#: ops/const.py:87 +msgctxt "scope" +msgid "Public" +msgstr "Công khai" + +#: ops/const.py:88 +msgid "Private" +msgstr "Riêng tư" + +#: ops/const.py:92 +msgid "Text" +msgstr "Hộp văn bản" + +#: ops/const.py:93 +msgid "Select" +msgstr "Hộp chọn" + +#: ops/exception.py:6 +msgid "no valid program entry found." +msgstr "Không có điểm vào chương trình khả dụng" + +#: ops/mixin.py:34 ops/mixin.py:166 settings/serializers/auth/ldap.py:74 +#: settings/serializers/auth/ldap_ha.py:56 +msgid "Periodic run" +msgstr "Periodic" + +#: ops/mixin.py:36 ops/mixin.py:113 ops/mixin.py:172 +#: settings/serializers/auth/ldap.py:81 +#: settings/serializers/auth/ldap_ha.py:63 +msgid "Interval" +msgstr "Khoảng cách" + +#: ops/mixin.py:39 ops/mixin.py:111 ops/mixin.py:169 +#: settings/serializers/auth/ldap.py:78 +#: settings/serializers/auth/ldap_ha.py:60 +msgid "Crontab" +msgstr "Crontab" + +#: ops/mixin.py:43 ops/mixin.py:177 +msgid "Start Datetime" +msgstr "Ngày bắt đầu" + +#: ops/mixin.py:45 ops/mixin.py:179 +msgid "Datetime when the schedule should begin triggering the task to run" +msgstr "" +"Thời gian ngày giờ mà kế hoạch nên bắt đầu kích hoạt việc chạy nhiệm vụ" + +#: ops/mixin.py:49 ops/models/base.py:22 ops/serializers/job.py:19 +msgid "Date last run" +msgstr "Ngày chạy cuối cùng" + +#: ops/mixin.py:183 +msgid "Run period" +msgstr "Period" + +#: ops/mixin.py:189 +msgid "* Please enter a valid crontab expression" +msgstr "* Vui lòng nhập biểu thức crontab hợp lệ" + +#: ops/mixin.py:194 +msgid "Crontab minute must not contain '*'" +msgstr "" + +#: ops/mixin.py:208 settings/serializers/auth/mixin.py:12 +msgid "Require interval or crontab setting" +msgstr "Cần thiết lập theo chu kỳ hoặc định kỳ" + +#: ops/models/adhoc.py:20 +msgid "Pattern" +msgstr "Chế độ" + +#: ops/models/adhoc.py:22 ops/models/job.py:151 +msgid "Module" +msgstr "Mô-đun" + +#: ops/models/adhoc.py:23 ops/models/celery.py:82 ops/models/job.py:149 +#: terminal/models/component/task.py:14 +msgid "Args" +msgstr "Nội dung" + +#: ops/models/adhoc.py:26 ops/models/playbook.py:34 +#: ops/serializers/mixin.py:10 rbac/models/role.py:31 +#: rbac/models/rolebinding.py:46 rbac/serializers/role.py:12 +#: settings/serializers/auth/oauth2.py:37 +msgid "Scope" +msgstr "Phạm vi" + +#: ops/models/base.py:19 +msgid "Account policy" +msgstr "Chiến lược tài khoản" + +#: ops/models/base.py:20 +msgid "Last execution" +msgstr "Lần thực hiện cuối cùng" + +#: ops/models/celery.py:16 +msgid "Date last publish" +msgstr "Ngày phát hành" + +#: ops/models/celery.py:71 +msgid "Celery Task" +msgstr "Nhiệm vụ Celery" + +#: ops/models/celery.py:74 +msgid "Can view task monitor" +msgstr "Có thể xem theo dõi nhiệm vụ" + +#: ops/models/celery.py:83 terminal/models/component/task.py:15 +msgid "Kwargs" +msgstr "Tham số khác" + +#: ops/models/celery.py:88 +msgid "Date published" +msgstr "Ngày phát hành" + +#: ops/models/celery.py:124 +msgid "Celery Task Execution" +msgstr "Thực hiện nhiệm vụ Celery" + +#: ops/models/job.py:82 +msgid "Module {} is not suitable for this asset" +msgstr "Mô-đun {} không áp dụng cho tài sản này" + +#: ops/models/job.py:152 +msgid "Run dir" +msgstr "Thư mục chạy" + +#: ops/models/job.py:153 +msgid "Timeout (Seconds)" +msgstr "Timeout (Sec)" + +#: ops/models/job.py:159 +msgid "Use Parameter Define" +msgstr "Sử dụng định nghĩa tham số" + +#: ops/models/job.py:160 +msgid "Parameters define" +msgstr "Định nghĩa tham số" + +#: ops/models/job.py:161 +msgid "Periodic variable" +msgstr "Biến thực thi chu kỳ" + +#: ops/models/job.py:162 +msgid "Run as" +msgstr "Người dùng chạy" + +#: ops/models/job.py:164 +msgid "Run as policy" +msgstr "Chiến lược người dùng" + +#: ops/models/job.py:221 ops/models/variable.py:28 ops/serializers/job.py:111 +#: terminal/notifications.py:182 +msgid "Job" +msgstr "Công việc" + +#: ops/models/job.py:244 +msgid "Material" +msgstr "Vật liệu" + +#: ops/models/job.py:246 +msgid "Material Type" +msgstr "Loại vật liệu" + +#: ops/models/job.py:558 +msgid "Job Execution" +msgstr "Thực thi công việc" + +#: ops/models/playbook.py:33 +msgid "CreateMethod" +msgstr "Cách tạo" + +#: ops/models/playbook.py:35 +msgid "VCS URL" +msgstr "URL VCS" + +#: ops/models/variable.py:11 ops/serializers/variable.py:22 +msgid "Variable name" +msgstr "Tên biến" + +#: ops/models/variable.py:12 ops/serializers/variable.py:23 +msgid "" +"The variable name used in the script will have a fixed prefix jms_ added to " +"the input variable name. For example, if the input variable name is name, " +"the resulting environment variable will be jms_name, and it can be " +"referenced in the script using {{ jms_name }}" +msgstr "" +"Tên biến sử dụng trong script, tiền tố cố định jms_ + tên biến đầu vào, ví " +"dụ: tên biến là name, thì biến môi trường cuối cùng sẽ là jms_name, khi tham" +" chiếu trong script sẽ sử dụng {{ jms_name }}" + +#: ops/models/variable.py:16 ops/serializers/variable.py:32 +msgid "Default Value" +msgstr "Mặc định" + +#: ops/models/variable.py:18 +msgid "Variable type" +msgstr "Loại biến" + +#: ops/models/variable.py:21 ops/serializers/variable.py:35 +msgid "ExtraVars" +msgstr "Tham số bổ sung" + +#: ops/models/variable.py:49 ops/serializers/adhoc.py:16 +#: ops/serializers/job.py:23 ops/serializers/playbook.py:21 +msgid "Variable" +msgstr "Biến" + +#: ops/notifications.py:20 +msgid "Server performance" +msgstr "Giám sát cảnh báo" + +#: ops/notifications.py:27 +msgid "Component health check warning" +msgstr "Cảnh báo tình trạng sức khỏe thành phần" + +#: ops/notifications.py:80 +msgid "The component is offline: {name}" +msgstr "Thành phần đã ngoại tuyến: {name}" + +#: ops/notifications.py:85 +msgid "Disk used more than {max_threshold}%: => {value}" +msgstr "Tỷ lệ sử dụng đĩa vượt quá {max_threshold}%: => {value}" + +#: ops/notifications.py:90 +msgid "Memory used more than {max_threshold}%: => {value}" +msgstr "Tỷ lệ sử dụng bộ nhớ vượt quá {max_threshold}%: => {value}" + +#: ops/notifications.py:95 +msgid "CPU load more than {max_threshold}: => {value}" +msgstr "Tỷ lệ sử dụng CPU vượt quá {max_threshold}: => {value}" + +#: ops/serializers/celery.py:35 +msgid "Next execution time" +msgstr "Thời gian thực hiện tiếp theo" + +#: ops/serializers/job.py:17 +msgid "Run on save" +msgstr "Run on save" + +#: ops/serializers/job.py:91 +msgid "Job type" +msgstr "Loại tác vụ" + +#: ops/serializers/job.py:94 terminal/serializers/session.py:66 +msgid "Is finished" +msgstr "Finished" + +#: ops/serializers/job.py:108 +msgid "Task id" +msgstr "ID tác vụ" + +#: ops/serializers/job.py:117 +msgid "You do not have permission for the current job." +msgstr "Bạn không có quyền truy cập vào công việc hiện tại." + +#: ops/serializers/variable.py:29 +msgid "Variable Type" +msgstr "Loại biến" + +#: ops/serializers/variable.py:37 +msgid "" +"Each item is on a separate line, with each line separated by a colon. The " +"part before the colon is the display content, and the part after the colon " +"is the value." +msgstr "" +"Mỗi mục trên một dòng, mỗi dòng có thể phân tách nội dung hiển thị ở phía " +"trước bằng dấu hai chấm và giá trị ở phía sau." + +#: ops/tasks.py:54 +msgid "Run ansible task" +msgstr "Chạy nhiệm vụ Ansible" + +#: ops/tasks.py:57 +msgid "" +"Execute scheduled adhoc and playbooks, periodically invoking the task for " +"execution" +msgstr "" +"Khi thực hiện các lệnh tắt định kỳ, playbook, tự động gọi nhiệm vụ này để " +"thực hiện" + +#: ops/tasks.py:88 +msgid "Run ansible task execution" +msgstr "Bắt đầu thực hiện nhiệm vụ Ansible" + +#: ops/tasks.py:91 +msgid "Execute the task when manually adhoc or playbooks" +msgstr "Khi thực hiện lệnh tắt, playbook bằng tay, sẽ thực hiện nhiệm vụ này" + +#: ops/tasks.py:106 +msgid "Clear celery periodic tasks" +msgstr "Dọn dẹp nhiệm vụ định kỳ" + +#: ops/tasks.py:108 +msgid "At system startup, clean up celery tasks that no longer exist" +msgstr "" +"Khi hệ thống khởi động, dọn dẹp các nhiệm vụ celery đã không còn tồn tại" + +#: ops/tasks.py:132 +msgid "Create or update periodic tasks" +msgstr "Tạo hoặc cập nhật nhiệm vụ định kỳ" + +#: ops/tasks.py:134 +msgid "" +"With version iterations, new tasks may be added, or task names and execution times may \n" +" be modified. Therefore, upon system startup, tasks will be registered or the parameters \n" +" of scheduled tasks will be updated" +msgstr "" +"Với sự phát triển của phiên bản, có thể sẽ có nhiệm vụ mới hoặc thay đổi tên" +" nhiệm vụ, thời gian thực hiện, do đó khi hệ thống khởi động, sẽ đăng ký " +"nhiệm vụ hoặc cập nhật tham số nhiệm vụ định kỳ" + +#: ops/tasks.py:147 +msgid "Periodic check service performance" +msgstr "Kiểm tra hiệu suất dịch vụ định kỳ" + +#: ops/tasks.py:149 +msgid "" +"Check every hour whether each component is offline and whether the CPU, memory, \n" +" and disk usage exceed the thresholds, and send an alert message to the administrator" +msgstr "" +"Mỗi giờ kiểm tra xem các thành phần có bị ngắt kết nối không, sử dụng CPU, " +"bộ nhớ, tỷ lệ sử dụng đĩa có vượt quá ngưỡng không, gửi thông báo cảnh báo " +"cho quản lý" + +#: ops/tasks.py:159 +msgid "Clean up unexpected jobs" +msgstr "Dọn dẹp công việc bất thường" + +#: ops/tasks.py:161 +msgid "" +"Due to exceptions caused by executing adhoc and playbooks in the Job Center, \n" +" which result in the task status not being updated, the system will clean up abnormal jobs \n" +" that have not been completed for more than 3 hours every hour and mark these tasks as \n" +" failed" +msgstr "" +"Do trung tâm công việc thực hiện lệnh tắt, playbook có thể phát sinh bất " +"thường, trạng thái nhiệm vụ chưa được cập nhật hoàn tất, hệ thống sẽ thực " +"hiện dọn dẹp các công việc bất thường chưa hoàn thành sau 3 giờ mỗi giờ một " +"lần, và đánh dấu nhiệm vụ là thất bại" + +#: ops/tasks.py:174 +msgid "Clean job_execution db record" +msgstr "Dọn dẹp lịch sử thực hiện trung tâm công việc" + +#: ops/tasks.py:176 +msgid "" +"Due to the execution of adhoc and playbooks in the Job Center, execution records will \n" +" be generated. The system will clean up records that exceed the retention period every day \n" +" at 2 a.m., based on the configuration of 'System Settings - Tasks - Regular clean-up - \n" +" Job execution retention days'" +msgstr "" +"Do trung tâm công việc thực hiện lệnh tắt, playbook, sẽ phát sinh bản ghi " +"thực hiện, hệ thống sẽ căn cứ vào cài đặt hệ thống - danh sách nhiệm vụ - " +"dọn dẹp định kỳ - cấu hình lịch sử thực hiện trung tâm công việc, vào lúc 2 " +"giờ sáng mỗi ngày sẽ dọn dẹp các bản ghi đã vượt quá thời gian lưu trữ" + +#: ops/templates/ops/celery_task_log.html:4 +msgid "Task log" +msgstr "Danh sách nhiệm vụ." + +#: ops/variables.py:24 +msgid "The current user`s username of JumpServer" +msgstr "Người dùng hiện tại của JumpServer" + +#: ops/variables.py:25 +msgid "The id of the asset in the JumpServer" +msgstr "ID của tài sản trong JumpServer" + +#: ops/variables.py:26 +msgid "The type of the asset in the JumpServer" +msgstr "Loại tài sản trong JumpServer" + +#: ops/variables.py:27 +msgid "The category of the asset in the JumpServer" +msgstr "Danh mục tài sản trong JumpServer" + +#: ops/variables.py:28 +msgid "The name of the asset in the JumpServer" +msgstr "Tên tài sản trong JumpServer" + +#: ops/variables.py:29 +msgid "Address used to connect this asset in JumpServer" +msgstr "Địa chỉ kết nối với tài sản này trong JumpServer" + +#: ops/variables.py:30 +msgid "Port used to connect this asset in JumpServer" +msgstr "Cổng kết nối với tài sản này trong JumpServer" + +#: ops/variables.py:31 +msgid "ID of the job" +msgstr "ID công việc" + +#: ops/variables.py:32 +msgid "Name of the job" +msgstr "Tên công việc" + +#: orgs/api.py:60 +msgid "The current organization ({}) cannot be deleted" +msgstr "Tổ chức hiện tại ({}) không thể bị xóa" + +#: orgs/api.py:65 +msgid "" +"LDAP synchronization is set to the current organization. Please switch to " +"another organization before deleting" +msgstr "" +"Cài đặt đồng bộ LDAP tổ chức là tổ chức hiện tại, vui lòng chuyển sang tổ " +"chức khác trước khi thực hiện thao tác xóa" + +#: orgs/api.py:75 +msgid "The organization have resource ({}) cannot be deleted" +msgstr "Tổ chức có tài nguyên ({}) không thể bị xóa" + +#: orgs/apps.py:7 +msgid "App Organizations" +msgstr "Quản lý tổ chức" + +#: orgs/mixins/models.py:48 orgs/mixins/models.py:73 +msgid "Please save in a org" +msgstr "Vui lòng chọn một tổ chức trước khi lưu" + +#: orgs/mixins/models.py:57 orgs/mixins/serializers.py:25 orgs/models.py:91 +#: rbac/const.py:7 rbac/models/rolebinding.py:56 +#: rbac/serializers/rolebinding.py:44 settings/serializers/auth/base.py:53 +#: terminal/templates/terminal/_msg_command_warning.html:21 +#: terminal/templates/terminal/_msg_session_sharing.html:14 +#: tickets/models/ticket/general.py:303 +#: tickets/serializers/ticket/ticket.py:61 +msgid "Organization" +msgstr "Tổ chức" + +#: orgs/models.py:14 +msgid "GLOBAL" +msgstr "Toàn cục tổ chức" + +#: orgs/models.py:16 +msgid "DEFAULT" +msgstr "Tổ chức mặc định" + +#: orgs/models.py:18 +msgid "SYSTEM" +msgstr "Tổ chức hệ thống" + +#: orgs/models.py:83 rbac/models/role.py:36 settings/models.py:190 +#: terminal/models/applet/applet.py:42 +msgid "Builtin" +msgstr "Builtin" + +#: orgs/models.py:93 +msgid "Can view root org" +msgstr "Có thể xem tổ chức toàn cục" + +#: orgs/models.py:94 +msgid "Can view all joined org" +msgstr "Có thể xem tất cả các tổ chức đã tham gia" + +#: orgs/models.py:237 +msgid "Can not delete virtual org" +msgstr "Không thể xóa tổ chức ảo" + +#: orgs/serializers.py:10 perms/serializers/permission.py:59 +#: rbac/serializers/role.py:27 users/serializers/group.py:53 +msgid "Users amount" +msgstr "Số lượng người dùng" + +#: orgs/serializers.py:11 +msgid "User groups amount" +msgstr "Số lượng nhóm người dùng" + +#: orgs/serializers.py:14 perms/serializers/permission.py:62 +msgid "Nodes amount" +msgstr "Số lượng nút" + +#: orgs/serializers.py:15 +msgid "Domains amount" +msgstr "Zones amount" + +#: orgs/serializers.py:16 +msgid "Gateways amount" +msgstr "Số lượng cổng" + +#: orgs/serializers.py:18 +msgid "Asset permissions amount" +msgstr "Số lượng tài sản được cấp phép" + +#: orgs/tasks.py:10 +msgid "Refresh organization cache" +msgstr "Làm mới bộ nhớ đệm tổ chức" + +#: perms/apps.py:9 +msgid "App Permissions" +msgstr "Policies" + +#: perms/const.py:12 +msgid "Connect (All protocols)" +msgstr "Kết nối (tất cả giao thức)" + +#: perms/const.py:13 +msgid "Upload (RDP, SFTP)" +msgstr "Tải lên (RDP, SFTP)" + +#: perms/const.py:14 +msgid "Download (RDP, SFTP)" +msgstr "Tải xuống (RDP, SFTP)" + +#: perms/const.py:15 +msgid "Copy (RDP, VNC)" +msgstr "Sao chép (RDP, VNC)" + +#: perms/const.py:16 +msgid "Paste (RDP, VNC)" +msgstr "Dán (RDP, VNC)" + +#: perms/const.py:17 +msgid "Delete (SFTP)" +msgstr "Xóa (SFTP)" + +#: perms/const.py:18 +msgid "Share (Web SSH, Web RDP, Web VNC)" +msgstr "Chia sẻ (Web SSH, Web RDP, Web VNC)" + +#: perms/const.py:28 +msgid "Transfer" +msgstr "Truyền tệp" + +#: perms/const.py:29 +msgid "Clipboard" +msgstr "Bảng tạm" + +#: perms/models/asset_permission.py:89 +msgid "Asset permission" +msgstr "Tài sản phân quyền" + +#: perms/models/perm_node.py:74 +msgid "Ungrouped" +msgstr "Chưa phân nhóm" + +#: perms/models/perm_node.py:76 +msgid "Favorite" +msgstr "Thư mục yêu thích" + +#: perms/models/perm_node.py:128 +msgid "Permed asset" +msgstr "Tài sản đã phân quyền" + +#: perms/models/perm_node.py:130 +msgid "Can view my assets" +msgstr "Có thể xem tài sản của tôi" + +#: perms/models/perm_node.py:131 +msgid "Can view user assets" +msgstr "Có thể xem tài sản phân quyền của người dùng" + +#: perms/models/perm_node.py:132 +msgid "Can view usergroup assets" +msgstr "Có thể xem tài sản phân quyền của nhóm người dùng" + +#: perms/models/perm_node.py:143 +msgid "Permed account" +msgstr "Tài khoản phân quyền" + +#: perms/notifications.py:12 perms/notifications.py:44 +msgid "today" +msgstr "Hôm nay" + +#: perms/notifications.py:12 perms/notifications.py:44 +#: settings/serializers/feature.py:187 +msgid "day" +msgstr "Ngày" + +#: perms/notifications.py:15 +msgid "The asset you authorized is about to expire" +msgstr "Tài sản bạn được ủy quyền sắp hết hạn" + +#: perms/notifications.py:20 +msgid "permed assets" +msgstr "Tài sản được ủy quyền" + +#: perms/notifications.py:59 +msgid "Asset permissions is about to expire" +msgstr "Quy tắc ủy quyền tài sản sẽ hết hạn" + +#: perms/notifications.py:64 +msgid "asset permissions of organization {}" +msgstr "Tài sản ủy quyền của tổ chức ({})" + +#: perms/serializers/permission.py:43 +msgid "" +"Accounts, format [\"@virtual\", \"root\", \"%template_id\"], virtual " +"choices: @ALL, @SPEC, @USER, @ANON, @INPUT" +msgstr "" +"Tài khoản, định dạng [\"@tài khoản ảo\", \"root\", \"%id mẫu\"], tùy chọn " +"ảo: @TẤT CẢ, @CỤ THỂ, @NGƯỜI DÙNG, @KHÁCH, @NHẬP" + +#: perms/serializers/permission.py:49 +msgid "Protocols, format [\"ssh\", \"rdp\", \"vnc\"] or [\"all\"]" +msgstr "Giao thức, định dạng là [\"ssh\", \"rdp\", \"vnc\"] hoặc [\"tất cả\"]" + +#: perms/serializers/permission.py:60 +msgid "Groups amount" +msgstr "Số lượng nhóm người dùng" + +#: perms/tasks.py:28 +msgid "Check asset permission expired" +msgstr "Kiểm tra quy tắc ủy quyền tài sản đã hết hạn" + +#: perms/tasks.py:30 +msgid "" +"The cache of organizational collections, which have completed user authorization tree \n" +" construction, will expire. Therefore, expired collections need to be cleared from the \n" +" cache, and this task will be executed periodically based on the time interval specified \n" +" by PERM_EXPIRED_CHECK_PERIODIC in the system configuration file config.txt" +msgstr "" +"Bộ nhớ cache của tập hợp tổ chức đã xây dựng cây ủy quyền người dùng sẽ hết " +"hạn, vì vậy cần xóa tập hợp đã hết hạn khỏi bộ nhớ cache, thực hiện nhiệm vụ" +" này theo khoảng thời gian được cấu hình trong tệp hệ thống config.txt với " +"PERM_EXPIRED_CHECK_PERIODIC" + +#: perms/tasks.py:49 +msgid "Send asset permission expired notification" +msgstr "Gửi thông báo hết hạn quyền tài sản" + +#: perms/tasks.py:51 +msgid "" +"Check every day at 10 a.m. and send a notification message to users associated with \n" +" assets whose authorization is about to expire, as well as to the organization's \n" +" administrators, 3 days in advance, to remind them that the asset authorization will \n" +" expire in a few days" +msgstr "" +"Kiểm tra vào lúc 10 giờ sáng mỗi ngày, sẽ gửi thông báo đến người dùng liên " +"quan và quản trị viên của tổ chức về tài sản ủy quyền sẽ hết hạn trong ba " +"ngày, thông báo tài sản còn vài ngày sẽ hết hạn" + +#: perms/templates/perms/_msg_item_permissions_expire.html:7 +#: perms/templates/perms/_msg_permed_items_expire.html:7 +msgid "The following %(item_type)s will expire in %(count)s" +msgstr "Những %(item_type)s sau đây sẽ hết hạn sau %(count)s" + +#: rbac/api/role.py:35 +msgid "Internal role, can't be destroy" +msgstr "Vai trò nội bộ, không thể xóa" + +#: rbac/api/role.py:40 +msgid "The role has been bound to users, can't be destroy" +msgstr "Vai trò đã liên kết với người dùng, không thể xóa" + +#: rbac/api/role.py:105 +msgid "Internal role, can't be update" +msgstr "Nội bộ vai trò, không thể cập nhật" + +#: rbac/api/rolebinding.py:45 +msgid "{} at least one system role" +msgstr "{} ít nhất một vai trò hệ thống" + +#: rbac/apps.py:7 +msgid "App RBAC" +msgstr "RBAC" + +#: rbac/builtin.py:124 +msgid "SystemAdmin" +msgstr "System Admin" + +#: rbac/builtin.py:127 +msgid "SystemAuditor" +msgstr "System Auditor" + +#: rbac/builtin.py:130 +msgid "SystemComponent" +msgstr "System Component" + +#: rbac/builtin.py:136 +msgid "OrgAdmin" +msgstr "Organization Admin" + +#: rbac/builtin.py:139 +msgid "OrgAuditor" +msgstr "Organization Auditor" + +#: rbac/builtin.py:142 +msgid "OrgUser" +msgstr "Organization user" + +#: rbac/models/menu.py:13 +msgid "Menu permission" +msgstr "phân quyền menu" + +#: rbac/models/menu.py:15 +msgid "Can view console view" +msgstr "có thể hiển thị bảng điều khiển" + +#: rbac/models/menu.py:16 +msgid "Can view pam view" +msgstr "có thể hiển thị PAM" + +#: rbac/models/menu.py:17 +msgid "Can view audit view" +msgstr "có thể hiển thị bảng kiểm toán" + +#: rbac/models/menu.py:18 +msgid "Can view workbench view" +msgstr "có thể hiển thị bảng công việc" + +#: rbac/models/menu.py:19 +msgid "Can view web terminal" +msgstr "Web terminal" + +#: rbac/models/menu.py:20 +msgid "Can view file manager" +msgstr "có thể xem quản lý tệp" + +#: rbac/models/menu.py:21 +msgid "Can view System Tools" +msgstr "có thể xem công cụ hệ thống" + +#: rbac/models/menu.py:22 +msgid "Can view user login report" +msgstr "có thể xem báo cáo đăng nhập người dùng" + +#: rbac/models/menu.py:23 +msgid "Can view user change password report" +msgstr "có thể xem báo cáo thay đổi mật khẩu người dùng" + +#: rbac/models/menu.py:24 +msgid "Can view asset statistics report" +msgstr "có thể xem báo cáo thống kê tài sản" + +#: rbac/models/menu.py:25 +msgid "Can view asset activity report" +msgstr "có thể xem báo cáo hoạt động tài sản" + +#: rbac/models/menu.py:26 +msgid "Can view account statistics report" +msgstr "có thể xem báo cáo thống kê tài khoản." + +#: rbac/models/menu.py:27 +msgid "Can view account automation report" +msgstr "Có thể xem báo cáo tự động hóa tài khoản" + +#: rbac/models/permission.py:18 +msgid "ContentType" +msgstr "Loại nội dung" + +#: rbac/models/permission.py:79 rbac/models/role.py:34 +msgid "Permissions" +msgstr "Ủy quyền" + +#: rbac/models/role.py:144 +msgid "System role" +msgstr "Vai trò hệ thống" + +#: rbac/models/role.py:152 +msgid "Organization role" +msgstr "Vai trò tổ chức" + +#: rbac/models/rolebinding.py:62 +msgid "Role binding" +msgstr "Liên kết vai trò" + +#: rbac/models/rolebinding.py:168 +msgid "All organizations" +msgstr "Tất cả tổ chức" + +#: rbac/models/rolebinding.py:200 +msgid "" +"User last role in org, can not be delete, you can remove user from org " +"instead" +msgstr "" +"Vai trò cuối cùng của người dùng, không thể xóa, bạn có thể loại bỏ người " +"dùng khỏi tổ chức" + +#: rbac/models/rolebinding.py:207 +msgid "Organization role binding" +msgstr "Liên kết vai trò tổ chức" + +#: rbac/models/rolebinding.py:222 +msgid "System role binding" +msgstr "Liên kết vai trò hệ thống" + +#: rbac/serializers/rolebinding.py:60 +msgid "Has bound this role" +msgstr "Đã được liên kết" + +#: rbac/tree.py:17 rbac/tree.py:18 +msgid "All permissions" +msgstr "Tất cả quyền" + +#: rbac/tree.py:24 +msgid "Console view" +msgstr "Console" + +#: rbac/tree.py:25 +msgid "Pam view" +msgstr "PAM" + +#: rbac/tree.py:26 +msgid "Workbench view" +msgstr "Workbench" + +#: rbac/tree.py:27 +msgid "Audit view" +msgstr "Audits" + +#: rbac/tree.py:28 settings/models.py:166 +msgid "System setting" +msgstr "Cài đặt hệ thống" + +#: rbac/tree.py:38 +msgid "Session audits" +msgstr "Session" + +#: rbac/tree.py:50 xpack/plugins/cloud/manager.py:102 +msgid "Cloud import" +msgstr "Đồng bộ đám mây" + +#: rbac/tree.py:54 +msgid "Gather account" +msgstr "Tài khoản phát hiện" + +#: rbac/tree.py:56 reports/api/accouts/automation.py:73 +msgid "Account change secret" +msgstr "Tài khoản đổi mật khẩu" + +#: rbac/tree.py:58 +msgid "App ops" +msgstr "Ops" + +#: rbac/tree.py:60 settings/serializers/feature.py:193 +msgid "Feature" +msgstr "Chức năng" + +#: rbac/tree.py:61 settings/serializers/auth/base.py:11 +msgid "Authentication" +msgstr "Xác thực" + +#: rbac/tree.py:62 +msgid "Storage" +msgstr "Lưu trữ" + +#: rbac/tree.py:64 terminal/models/applet/applet.py:53 +#: terminal/models/applet/applet.py:371 terminal/models/applet/host.py:30 +#: terminal/serializers/applet.py:16 +msgid "Applet" +msgstr "Ứng dụng từ xa" + +#: rbac/tree.py:66 +msgid "Appearance" +msgstr "Giao diện" + +#: rbac/tree.py:68 xpack/plugins/license/meta.py:10 +#: xpack/plugins/license/models.py:153 +msgid "License" +msgstr "Giấy phép" + +#: rbac/tree.py:70 +msgid "Job audit" +msgstr "Kiểm tra công việc" + +#: rbac/tree.py:71 +msgid "Report" +msgstr "Báo cáo" + +#: rbac/tree.py:181 +msgid "App organizations" +msgstr "Organizations" + +#: rbac/tree.py:182 +msgid "Ticket comment" +msgstr "Nhận xét nhiệm vụ" + +#: rbac/tree.py:183 settings/serializers/feature.py:174 +#: settings/serializers/feature.py:176 tickets/models/ticket/general.py:310 +msgid "Ticket" +msgstr "Nhiệm vụ" + +#: rbac/tree.py:184 +msgid "Common setting" +msgstr "Cài đặt chung" + +#: rbac/tree.py:185 +msgid "View permission tree" +msgstr "Xem cây ủy quyền" + +#: reports/views.py:20 +msgid "User login report" +msgstr "Báo cáo đăng nhập người dùng" + +#: reports/views.py:24 +msgid "User change password report" +msgstr "Báo cáo thay đổi mật khẩu người dùng" + +#: reports/views.py:28 +msgid "Asset statistics report" +msgstr "Báo cáo thống kê tài sản" + +#: reports/views.py:32 +msgid "Asset activity report" +msgstr "Báo cáo hoạt động tài sản" + +#: reports/views.py:36 +msgid "Account statistics report" +msgstr "Báo cáo thống kê tài khoản" + +#: reports/views.py:40 +msgid "Account automation report" +msgstr "Báo cáo tự động hóa tài khoản" + +#: reports/views.py:44 +msgid "ConsoleDashboard" +msgstr "" + +#: reports/views.py:48 +msgid "AuditsDashboard" +msgstr "" + +#: reports/views.py:52 +msgid "PamDashboard" +msgstr "" + +#: reports/views.py:56 +msgid "ChangeSecretDashboard" +msgstr "" + +#: settings/api/chat.py:41 +msgid "Chat AI is not enabled" +msgstr "AI trò chuyện chưa được bật" + +#: settings/api/chat.py:89 settings/api/dingtalk.py:31 +#: settings/api/feishu.py:39 settings/api/slack.py:34 settings/api/sms.py:160 +#: settings/api/vault.py:49 settings/api/wecom.py:37 +msgid "Test success" +msgstr "Kiểm tra thành công" + +#: settings/api/email.py:22 +msgid "Test mail sent to {}, please check" +msgstr "Email đã được gửi {}, vui lòng kiểm tra" + +#: settings/api/email.py:47 +msgid "Test smtp setting" +msgstr "Kiểm tra cài đặt smtp" + +#: settings/api/ldap.py:92 +msgid "" +"Users are not synchronized, please click the user synchronization button" +msgstr "Người dùng chưa được đồng bộ, vui lòng nhấn nút đồng bộ người dùng" + +#: settings/api/sms.py:142 +msgid "Invalid SMS platform" +msgstr "Nền tảng SMS không hợp lệ" + +#: settings/api/sms.py:148 +msgid "test_phone is required" +msgstr "Số điện thoại kiểm tra là trường bắt buộc." + +#: settings/apps.py:7 +msgid "App Settings" +msgstr "Settings" + +#: settings/const.py:13 +msgid "Embed" +msgstr "" + +#: settings/models.py:42 users/models/preference.py:14 +msgid "Encrypted" +msgstr "Đã mã hóa" + +#: settings/models.py:168 +msgid "Can change email setting" +msgstr "Cài đặt email" + +#: settings/models.py:169 +msgid "Can change auth setting" +msgstr "Cài đặt xác thực" + +#: settings/models.py:170 +msgid "Can change auth ops" +msgstr "Trung tâm nhiệm vụ cài đặt" + +#: settings/models.py:171 +msgid "Can change auth ticket" +msgstr "Cài đặt công việc" + +#: settings/models.py:172 +msgid "Can change virtual app setting" +msgstr "Có thể thay đổi cài đặt ứng dụng ảo" + +#: settings/models.py:173 +msgid "Can change auth announcement" +msgstr "Cài đặt thông báo" + +#: settings/models.py:174 +msgid "Can change vault setting" +msgstr "Có thể thay đổi cài đặt vault" + +#: settings/models.py:175 +msgid "Can change chat ai setting" +msgstr "Có thể chỉnh sửa cài đặt AI trò chuyện" + +#: settings/models.py:176 +msgid "Can change system msg sub setting" +msgstr "Cài đặt đăng ký tin nhắn" + +#: settings/models.py:177 +msgid "Can change sms setting" +msgstr "Cài đặt SMS" + +#: settings/models.py:178 +msgid "Can change security setting" +msgstr "Cài đặt an toàn" + +#: settings/models.py:179 +msgid "Can change clean setting" +msgstr "Dọn dẹp định kỳ" + +#: settings/models.py:180 +msgid "Can change interface setting" +msgstr "Cài đặt giao diện" + +#: settings/models.py:181 +msgid "Can change license setting" +msgstr "Cài đặt giấy phép" + +#: settings/models.py:182 +msgid "Can change terminal setting" +msgstr "Cài đặt thiết bị đầu cuối" + +#: settings/models.py:183 +msgid "Can change other setting" +msgstr "Cài đặt khác" + +#: settings/models.py:193 +msgid "Chat prompt" +msgstr "Gợi ý trò chuyện" + +#: settings/notifications.py:23 +msgid "Notification of Synchronized LDAP User Task Results" +msgstr "Thông báo kết quả nhiệm vụ đồng bộ người dùng LDAP" + +#: settings/serializers/auth/base.py:13 +msgid "LDAP Auth" +msgstr "Xác thực LDAP" + +#: settings/serializers/auth/base.py:14 +msgid "LDAP Auth HA" +msgstr "Xác thực LDAP HA" + +#: settings/serializers/auth/base.py:15 +msgid "CAS Auth" +msgstr "Xác thực CAS" + +#: settings/serializers/auth/base.py:16 +msgid "OPENID Auth" +msgstr "Xác thực OIDC" + +#: settings/serializers/auth/base.py:17 +msgid "SAML2 Auth" +msgstr "Xác thực SAML2" + +#: settings/serializers/auth/base.py:18 +msgid "OAuth2 Auth" +msgstr "Xác thực OAuth2" + +#: settings/serializers/auth/base.py:19 +msgid "RADIUS Auth" +msgstr "Xác thực RADIUS" + +#: settings/serializers/auth/base.py:20 +msgid "DingTalk Auth" +msgstr "Xác thực DingTalk" + +#: settings/serializers/auth/base.py:21 +msgid "FeiShu Auth" +msgstr "Xác thực Feishu" + +#: settings/serializers/auth/base.py:22 +msgid "Lark Auth" +msgstr "Xác thực Lark" + +#: settings/serializers/auth/base.py:23 +msgid "Slack Auth" +msgstr "Xác thực Slack" + +#: settings/serializers/auth/base.py:24 +msgid "WeCom Auth" +msgstr "Xác thực WeChat doanh nghiệp" + +#: settings/serializers/auth/base.py:25 +msgid "SSO Auth" +msgstr "Xác thực mã thông báo SSO" + +#: settings/serializers/auth/base.py:26 +msgid "Passkey Auth" +msgstr "Xác thực Passkey" + +#: settings/serializers/auth/base.py:28 +msgid "Email suffix" +msgstr "Hậu tố email" + +#: settings/serializers/auth/base.py:30 +msgid "" +"After third-party user authentication is successful, if the third-party " +"authentication service platform does not return the user's email " +"information, the system will automatically create the user using this email " +"suffix" +msgstr "" +"Sau khi xác thực người dùng bên thứ ba thành công, nếu nền tảng dịch vụ xác " +"thực bên thứ ba không trả về thông tin email của người dùng, hệ thống sẽ tự " +"động tạo người dùng với hậu tố email này." + +#: settings/serializers/auth/base.py:37 +msgid "Forgot Password URL" +msgstr "Liên kết quên mật khẩu" + +#: settings/serializers/auth/base.py:38 +msgid "The URL for Forgotten Password on the user login page" +msgstr "URL quên mật khẩu của trang đăng nhập người dùng" + +#: settings/serializers/auth/base.py:41 +msgid "Login redirection" +msgstr "Kích hoạt thông báo chuyển hướng đăng nhập" + +#: settings/serializers/auth/base.py:43 +msgid "" +"Should an flash page be displayed before the user is redirected to third-" +"party authentication when the administrator enables third-party redirect " +"authentication" +msgstr "" +"Khi quản trị viên kích hoạt xác thực định danh chuyển hướng từ bên thứ ba, " +"có hiển thị trang Flash trước khi người dùng được chuyển hướng đến xác thực " +"bên thứ ba hay không." + +#: settings/serializers/auth/base.py:55 +msgid "" +"When you create a user, you associate the user to the organization of your " +"choice. Users always belong to the Default organization." +msgstr "" +"Khi tạo người dùng, bạn sẽ liên kết người dùng đó với tổ chức mà bạn đã " +"chọn. Người dùng luôn thuộc về tổ chức Default." + +#: settings/serializers/auth/cas.py:12 settings/serializers/auth/cas.py:14 +msgid "CAS" +msgstr "CAS" + +#: settings/serializers/auth/cas.py:15 settings/serializers/auth/ldap.py:45 +#: settings/serializers/auth/ldap_ha.py:27 +#: settings/serializers/auth/oidc.py:61 +msgid "Server" +msgstr "Địa chỉ máy chủ dịch vụ" + +#: settings/serializers/auth/cas.py:18 +msgid "Proxy Server" +msgstr "Địa chỉ callback" + +#: settings/serializers/auth/cas.py:21 settings/serializers/auth/oauth2.py:56 +#: settings/serializers/auth/saml2.py:42 +msgid "Logout completely" +msgstr "Đăng xuất đồng bộ" + +#: settings/serializers/auth/cas.py:22 +msgid "When the user signs out, they also be logged out from the CAS server" +msgstr "Khi người dùng đăng xuất, họ cũng sẽ đăng xuất từ máy chủ CAS." + +#: settings/serializers/auth/cas.py:28 +msgid "Username attr" +msgstr "Thuộc tính tên người dùng" + +#: settings/serializers/auth/cas.py:31 +msgid "Enable attributes map" +msgstr "Kích hoạt ánh xạ thuộc tính" + +#: settings/serializers/auth/cas.py:34 +#: settings/serializers/auth/dingtalk.py:18 +#: settings/serializers/auth/feishu.py:18 settings/serializers/auth/lark.py:17 +#: settings/serializers/auth/ldap.py:67 +#: settings/serializers/auth/ldap_ha.py:49 +#: settings/serializers/auth/oauth2.py:60 settings/serializers/auth/oidc.py:39 +#: settings/serializers/auth/saml2.py:35 settings/serializers/auth/slack.py:18 +#: settings/serializers/auth/wecom.py:18 +msgid "User attribute" +msgstr "Ánh xạ thuộc tính." + +#: settings/serializers/auth/cas.py:36 +msgid "" +"User attribute mapping, where the `key` is the CAS service user attribute " +"name and the `value` is the JumpServer user attribute name" +msgstr "" +"Bản đồ thuộc tính người dùng, trong đó `key` là tên thuộc tính người dùng " +"dịch vụ CAS, `value` là tên thuộc tính người dùng JumpServer" + +#: settings/serializers/auth/cas.py:41 +msgid "Create user" +msgstr "Tạo người dùng (nếu không tồn tại)" + +#: settings/serializers/auth/cas.py:43 +msgid "" +"After successful user authentication, if the user does not exist, " +"automatically create the user" +msgstr "" +"Sau khi xác thực người dùng thành công, nếu người dùng không tồn tại, sẽ tự " +"động tạo người dùng" + +#: settings/serializers/auth/dingtalk.py:16 +msgid "Dingtalk" +msgstr "Kích hoạt xác thực DingTalk" + +#: settings/serializers/auth/dingtalk.py:20 +msgid "" +"User attribute mapping, where the `key` is the JumpServer user attribute " +"name and the `value` is the DingTalk service user attribute name" +msgstr "" +"Bản đồ thuộc tính người dùng, trong đó `key` là tên thuộc tính người dùng " +"JumpServer, `value` là tên thuộc tính người dùng dịch vụ DingTalk" + +#: settings/serializers/auth/feishu.py:20 +msgid "" +"User attribute mapping, where the `key` is the JumpServer user attribute " +"name and the `value` is the FeiShu service user attribute name" +msgstr "" +"Bản đồ thuộc tính người dùng, trong đó `key` là tên thuộc tính người dùng " +"JumpServer, `value` là tên thuộc tính người dùng dịch vụ FeiShu" + +#: settings/serializers/auth/lark.py:13 users/models/user/_source.py:24 +msgid "Lark" +msgstr "" + +#: settings/serializers/auth/lark.py:19 +msgid "" +"User attribute mapping, where the `key` is the JumpServer user attribute " +"name and the `value` is the Lark service user attribute name" +msgstr "" +"Bản đồ thuộc tính người dùng, trong đó `key` là tên thuộc tính người dùng " +"JumpServer, `value` là tên thuộc tính người dùng dịch vụ Lark" + +#: settings/serializers/auth/ldap.py:42 settings/serializers/auth/ldap.py:108 +msgid "LDAP" +msgstr "LDAP" + +#: settings/serializers/auth/ldap.py:46 +msgid "LDAP server URI" +msgstr "Tên miền dịch vụ LDAP" + +#: settings/serializers/auth/ldap.py:49 +#: settings/serializers/auth/ldap_ha.py:31 +msgid "Bind DN" +msgstr "DN liên kết" + +#: settings/serializers/auth/ldap.py:50 +#: settings/serializers/auth/ldap_ha.py:32 +msgid "Binding Distinguished Name" +msgstr "Quản trị viên thư mục liên kết" + +#: settings/serializers/auth/ldap.py:54 +#: settings/serializers/auth/ldap_ha.py:36 +msgid "Binding password" +msgstr "Mật khẩu liên kết" + +#: settings/serializers/auth/ldap.py:57 +#: settings/serializers/auth/ldap_ha.py:39 +msgid "Search OU" +msgstr "OU người dùng" + +#: settings/serializers/auth/ldap.py:59 +#: settings/serializers/auth/ldap_ha.py:41 +msgid "" +"User Search Base, if there are multiple OUs, you can separate them with the " +"`|` symbol" +msgstr "" +"Kho tìm kiếm người dùng, nếu có nhiều OU, có thể phân tách bằng ký hiệu `|`" + +#: settings/serializers/auth/ldap.py:63 +#: settings/serializers/auth/ldap_ha.py:45 +msgid "Search filter" +msgstr "Bộ lọc người dùng." + +#: settings/serializers/auth/ldap.py:64 +#: settings/serializers/auth/ldap_ha.py:46 +msgid "Selection could include (cn|uid|sAMAccountName=%(user)s)" +msgstr "" +"Các tùy chọn khả thi là (cn hoặc uid hoặc sAMAccountName=%(user)s) " +"<---SEP---> ánh xạ thuộc tính người dùng, trong đó `key` là tên thuộc tính " +"người dùng của JumpServer, `value` là tên thuộc tính người dùng của dịch vụ " +"LDAP <---SEP---> Thời gian vượt thời gian kết nối (giây) <---SEP---> Chế độ " +"nghiêm ngặt <---SEP---> Khi chế độ nghiêm ngặt được bật, việc đồng bộ toàn " +"bộ hoặc tự động sẽ vô hiệu hóa những người dùng không được phát hiện trong " +"LDAP <---SEP---> Thời gian hết hạn bộ nhớ cache User DN (giây) <---SEP---> " +"Lưu cache User DN được truy vấn khi người dùng đăng nhập, có thể cải thiện " +"hiệu suất xác thực người dùng một cách hiệu quả
nếu cấu trúc OU của " +"người dùng có thay đổi, chỉ cần bấm vào gửi để xóa bộ nhớ cache User DN " +"<---SEP---> Số lượng phân trang tìm kiếm (điểm) <---SEP---> Xác thực LDAP " +"<---SEP---> Tên miền dịch vụ LDAP HA <---SEP---> Lưu cache User DN được truy" +" vấn khi người dùng đăng nhập, có thể cải thiện hiệu suất xác thực người " +"dùng một cách hiệu quả
nếu cấu trúc OU của người dùng có thay đổi, chỉ " +"cần bấm vào gửi để xóa bộ nhớ cache User DN <---SEP---> OAuth2 <---SEP---> " +"Nhà cung cấp dịch vụ <---SEP---> ID khách hàng <---SEP---> Khóa mật khẩu " +"khách hàng" + +#: settings/serializers/auth/ldap.py:69 +#: settings/serializers/auth/ldap_ha.py:51 +msgid "" +"User attribute mapping, where the `key` is the JumpServer user attribute " +"name and the `value` is the LDAP service user attribute name" +msgstr "" +"Ánh xạ thuộc tính của người dùng, trong đó `key` là tên thuộc tính người " +"dùng JumpServer, `value` là tên thuộc tính người dùng dịch vụ LDAP" + +#: settings/serializers/auth/ldap.py:85 +#: settings/serializers/auth/ldap_ha.py:67 +msgid "Connect timeout (s)" +msgstr "Thời gian kết nối tối đa (giây)" + +#: settings/serializers/auth/ldap.py:88 +#: settings/serializers/auth/ldap_ha.py:70 +msgid "Strict sync" +msgstr "Chế độ nghiêm ngặt." + +#: settings/serializers/auth/ldap.py:89 +#: settings/serializers/auth/ldap_ha.py:71 +msgid "" +"In strict mode, users not found in LDAP will be disabled during full or " +"automatic sync" +msgstr "" +"Khi chế độ nghiêm ngặt được kích hoạt, việc đồng bộ toàn bộ hoặc tự động sẽ " +"vô hiệu hóa những người dùng không được tìm thấy trong LDAP trong hệ thống" + +#: settings/serializers/auth/ldap.py:94 +#: settings/serializers/auth/ldap_ha.py:76 +msgid "User DN cache timeout (s)" +msgstr "Thời gian hết hạn bộ nhớ cache User DN (giây)" + +#: settings/serializers/auth/ldap.py:96 +msgid "" +"Caching the User DN obtained during user login authentication can " +"effectively improve the speed of user authentication., 0 means no " +"cache
If the user OU structure has been adjusted, click Submit to clear " +"the user DN cache" +msgstr "" +"Bộ nhớ cache User DN được truy vấn trong quá trình xác thực người dùng có " +"thể cải thiện hiệu suất xác thực người dùng một cách hiệu quả
Nếu cấu " +"trúc OU của người dùng có thay đổi, chỉ cần nhấp vào nút gửi để làm sạch bộ " +"nhớ cache User DN" + +#: settings/serializers/auth/ldap.py:102 +#: settings/serializers/auth/ldap_ha.py:84 +msgid "Search paged size (piece)" +msgstr "Số lượng phân trang tìm kiếm (mục)" + +#: settings/serializers/auth/ldap_ha.py:24 +#: settings/serializers/auth/ldap_ha.py:90 +msgid "LDAP HA" +msgstr "Xác thực LDAP" + +#: settings/serializers/auth/ldap_ha.py:28 +msgid "LDAP HA server URI" +msgstr "Tên miền dịch vụ LDAP HA" + +#: settings/serializers/auth/ldap_ha.py:78 +msgid "" +"Caching the User DN obtained during user login authentication can " +"effectivelyimprove the speed of user authentication., 0 means no cache
If" +" the user OU structure has been adjusted, click Submit to clear the user DN " +"cache" +msgstr "" +"Bộ nhớ cache User DN được truy vấn trong quá trình xác thực người dùng có " +"thể cải thiện hiệu suất xác thực người dùng một cách hiệu quả
Nếu cấu " +"trúc OU của người dùng có thay đổi, chỉ cần nhấp vào nút gửi để làm sạch bộ " +"nhớ cache User DN" + +#: settings/serializers/auth/oauth2.py:19 +#: settings/serializers/auth/oauth2.py:22 +msgid "OAuth2" +msgstr "OAuth2" + +#: settings/serializers/auth/oauth2.py:28 +msgid "Service provider" +msgstr "Nhà cung cấp dịch vụ" + +#: settings/serializers/auth/oauth2.py:31 settings/serializers/feature.py:99 +#: xpack/plugins/cloud/serializers/account_attrs.py:50 +msgid "Client ID" +msgstr "ID khách hàng" + +#: settings/serializers/auth/oauth2.py:34 settings/serializers/auth/oidc.py:24 +#: settings/serializers/feature.py:102 +#: xpack/plugins/cloud/serializers/account_attrs.py:53 +msgid "Client Secret" +msgstr "Mật khẩu khách hàng" + +#: settings/serializers/auth/oauth2.py:40 settings/serializers/auth/oidc.py:81 +msgid "Authorization endpoint" +msgstr "Địa chỉ đầu cuối được ủy quyền" + +#: settings/serializers/auth/oauth2.py:43 settings/serializers/auth/oidc.py:84 +msgid "Token endpoint" +msgstr "Địa chỉ đầu cuối token" + +#: settings/serializers/auth/oauth2.py:46 settings/serializers/auth/oidc.py:32 +#: settings/serializers/auth/sms.py:111 +msgid "Request method" +msgstr "Phương thức xác thực của khách hàng" + +#: settings/serializers/auth/oauth2.py:50 settings/serializers/auth/oidc.py:90 +msgid "Userinfo endpoint" +msgstr "Địa chỉ đầu cuối thông tin người dùng" + +#: settings/serializers/auth/oauth2.py:53 settings/serializers/auth/oidc.py:93 +msgid "End session endpoint" +msgstr "Địa chỉ đầu cuối đăng xuất phiên" + +#: settings/serializers/auth/oauth2.py:57 +msgid "" +"When the user signs out, they also be logged out from the OAuth2 server" +msgstr "Khi người dùng đăng xuất, họ cũng sẽ thoát khỏi máy chủ OAuth2" + +#: settings/serializers/auth/oauth2.py:62 +msgid "" +"User attribute mapping, where the `key` is the JumpServer user attribute " +"name and the `value` is the OAuth2 service user attribute name" +msgstr "" +"Ánh xạ thuộc tính người dùng, trong đó `key` là tên thuộc tính người dùng " +"của JumpServer, `value` là tên thuộc tính người dùng của dịch vụ OAuth2" + +#: settings/serializers/auth/oauth2.py:67 +#: settings/serializers/auth/oidc.py:117 settings/serializers/auth/saml2.py:45 +msgid "Always update user" +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 +msgid "OIDC" +msgstr "" + +#: settings/serializers/auth/oidc.py:17 +msgid "Base site URL" +msgstr "Địa chỉ JumpServer" + +#: settings/serializers/auth/oidc.py:18 +msgid "The current site's URL is used to construct the callback address" +msgstr "URL của trang hiện tại được sử dụng để tạo địa chỉ callback" + +#: settings/serializers/auth/oidc.py:21 +msgid "Client Id" +msgstr "ID khách hàng" + +#: settings/serializers/auth/oidc.py:34 +msgid "Share session" +msgstr "Phiên chia sẻ" + +#: settings/serializers/auth/oidc.py:36 +msgid "Ignore SSL verification" +msgstr "Bỏ qua xác thực chứng chỉ SSL" + +#: settings/serializers/auth/oidc.py:41 +msgid "" +"User attribute mapping, where the `key` is the JumpServer user attribute " +"name and the `value` is the OIDC service user attribute name" +msgstr "" +"Ánh xạ thuộc tính người dùng, trong đó `key` là tên thuộc tính người dùng " +"của JumpServer, `value` là tên thuộc tính người dùng của dịch vụ OIDC" + +#: settings/serializers/auth/oidc.py:45 +msgid "Enable PKCE" +msgstr "Kích hoạt PKCE" + +#: settings/serializers/auth/oidc.py:47 +msgid "Code challenge method" +msgstr "Xác thực mã kiểm tra cách" + +#: settings/serializers/auth/oidc.py:55 +msgid "Use Keycloak" +msgstr "sử dụng Keycloak" + +#: settings/serializers/auth/oidc.py:57 +msgid "" +"Use Keycloak as the OpenID Connect server, or use standard OpenID Connect " +"Protocol" +msgstr "" +"sử dụng Keycloak như một máy chủ OpenID Connect, hoặc sử dụng giao thức " +"OpenID Connect chuẩn" + +#: settings/serializers/auth/oidc.py:64 +msgid "Realm name" +msgstr "miền" + +#: settings/serializers/auth/oidc.py:71 +msgid "OpenID Connect" +msgstr "Kết nối OpenID" + +#: settings/serializers/auth/oidc.py:74 +msgid "Provider endpoint" +msgstr "địa chỉ điểm cuối" + +#: settings/serializers/auth/oidc.py:76 +msgid "" +"The issuer URL of the OpenID Provider, used to discover its configuration " +"via the `$PROVIDER_ENDPOINT/.well-known/openid-configuration` endpoint." +msgstr "" + +#: settings/serializers/auth/oidc.py:87 +msgid "JWKS endpoint" +msgstr "địa chỉ điểm cuối jwks" + +#: settings/serializers/auth/oidc.py:96 +msgid "Signature algorithm" +msgstr "thuật toán ký" + +#: settings/serializers/auth/oidc.py:99 +msgid "Signing key" +msgstr "Khóa ký" + +#: settings/serializers/auth/oidc.py:102 +msgid "Scopes" +msgstr "phạm vi kết nối" + +#: settings/serializers/auth/oidc.py:105 +msgid "ID Token max age (s)" +msgstr "thời gian hiệu lực token (giây)" + +#: settings/serializers/auth/oidc.py:108 +msgid "ID Token include claims" +msgstr "khai báo" + +#: settings/serializers/auth/oidc.py:111 +msgid "Use state" +msgstr "trạng thái sử dụng" + +#: settings/serializers/auth/oidc.py:114 +msgid "Use nonce" +msgstr "sử dụng tạm thời" + +#: settings/serializers/auth/passkey.py:12 +msgid "Only SSL domain can use passkey auth" +msgstr "" +"chỉ mô hình tên miền SSL mới có thể sử dụng xác thực Passkey (khóa truy cập)" + +#: settings/serializers/auth/passkey.py:15 +msgid "FIDO Server ID" +msgstr "Tên miền dịch vụ Passkey" + +#: settings/serializers/auth/passkey.py:17 +msgid "" +"The hostname can using passkey auth, If not set, will use request host and " +"the request host in DOMAINS, If multiple domains, use comma to separate" +msgstr "" +"là các tên miền có thể sử dụng xác thực Passkey. Nếu không thiết lập, hệ " +"thống sẽ sử dụng máy chủ yêu cầu (tên máy chủ trong miền đáng tin cậy " +"DOMAINS). Nếu có nhiều tên miền, hãy phân tách bằng dấu phẩy, không cần số " +"cổng." + +#: settings/serializers/auth/passkey.py:22 +msgid "FIDO Server name" +msgstr "Tên dịch vụ Passkey" + +#: settings/serializers/auth/radius.py:23 +msgid "OTP in RADIUS" +msgstr "Sử dụng Radius OTP" + +#: settings/serializers/auth/radius.py:24 +msgid "" +"* Using OTP in RADIUS means users can employ RADIUS as a method for MFA" +msgstr "" +"* Việc sử dụng OTP trong RADIUS có nghĩa là người dùng có thể sử dụng RADIUS" +" như một phương pháp MFA." + +#: settings/serializers/auth/saml2.py:12 settings/serializers/auth/saml2.py:15 +msgid "SAML2" +msgstr "SAML2" + +#: settings/serializers/auth/saml2.py:18 +msgid "IDP Metadata URL" +msgstr "Địa chỉ Metadata IDP" + +#: settings/serializers/auth/saml2.py:21 +msgid "IDP Metadata XML" +msgstr "XML Metadata IDP" + +#: settings/serializers/auth/saml2.py:24 +msgid "SP advanced settings" +msgstr "Cài đặt nâng cao" + +#: settings/serializers/auth/saml2.py:28 +msgid "SP private key" +msgstr "Khóa SP" + +#: settings/serializers/auth/saml2.py:32 +msgid "SP cert" +msgstr "Chứng chỉ SP" + +#: settings/serializers/auth/saml2.py:37 +msgid "" +"User attribute mapping, where the `key` is the SAML2 service user attribute " +"name and the `value` is the JumpServer user attribute name" +msgstr "" +"Ánh xạ thuộc tính người dùng, trong đó `key` là tên thuộc tính người dùng " +"dịch vụ SAML2, `value` là tên thuộc tính người dùng JumpServer" + +#: settings/serializers/auth/saml2.py:43 +msgid "When the user signs out, they also be logged out from the SAML2 server" +msgstr "Khi người dùng đăng xuất, họ cũng sẽ bị đăng xuất khỏi máy chủ SAML2" + +#: settings/serializers/auth/slack.py:20 +msgid "" +"User attribute mapping, where the `key` is the JumpServer user attribute " +"name and the `value` is the Slack service user attribute name" +msgstr "" +"Ánh xạ thuộc tính người dùng, trong đó `key` là tên thuộc tính người dùng " +"JumpServer, `value` là tên thuộc tính người dùng dịch vụ Slack" + +#: settings/serializers/auth/sms.py:18 +msgid "Enable Short Message Service (SMS)" +msgstr "Bật dịch vụ nhắn tin SMS." + +#: settings/serializers/auth/sms.py:21 xpack/plugins/cloud/models.py:37 +msgid "Provider" +msgstr "Nhà cung cấp dịch vụ đám mây" + +#: settings/serializers/auth/sms.py:22 +msgid "Short Message Service (SMS) provider or protocol" +msgstr "Nhà cung cấp dịch vụ tin nhắn (SMS) hoặc giao thức" + +#: settings/serializers/auth/sms.py:25 +msgid "Code length" +msgstr "Độ dài mã xác thực" + +#: settings/serializers/auth/sms.py:26 +msgid "Length of the sent verification code" +msgstr "Độ dài gửi mã xác thực" + +#: settings/serializers/auth/sms.py:31 settings/serializers/auth/sms.py:54 +#: settings/serializers/auth/sms.py:62 settings/serializers/auth/sms.py:71 +#: settings/serializers/auth/sms.py:82 settings/serializers/msg.py:83 +msgid "Signature" +msgstr "Chữ ký" + +#: settings/serializers/auth/sms.py:32 settings/serializers/auth/sms.py:55 +#: settings/serializers/auth/sms.py:63 settings/serializers/auth/sms.py:72 +msgid "Template code" +msgstr "Mẫu tin nhắn" + +#: settings/serializers/auth/sms.py:40 users/models/user/__init__.py:85 +#: users/serializers/user.py:159 +msgid "Phone" +msgstr "Số điện thoại di động" + +#: settings/serializers/auth/sms.py:69 +msgid "App Access Address" +msgstr "Địa chỉ ứng dụng" + +#: settings/serializers/auth/sms.py:70 +msgid "Signature channel number" +msgstr "Số kênh chữ ký" + +#: settings/serializers/auth/sms.py:78 +msgid "Enterprise code" +msgstr "Mã số doanh nghiệp (SP id)" + +#: settings/serializers/auth/sms.py:79 +msgid "Shared secret" +msgstr "Mật khẩu chia sẻ (Shared secret)" + +#: settings/serializers/auth/sms.py:80 +msgid "Original number" +msgstr "Số điện thoại gốc (Src id)" + +#: settings/serializers/auth/sms.py:81 +msgid "Business type" +msgstr "Loại hình kinh doanh (Application id)" + +#: settings/serializers/auth/sms.py:85 +msgid "" +"Template need contain {code} and Signature + template length does not exceed" +" 67 words. For example, your verification code is {code}, which is valid for" +" 5 minutes. Please do not disclose it to others." +msgstr "" +"Mẫu tin nhắn cần phải chứa {code} và tổng chiều dài mẫu + chữ ký không vượt " +"quá 67 ký tự. Ví dụ, mã xác thực của bạn là {code}, có hiệu lực trong 5 " +"phút. Vui lòng không tiết lộ cho người khác." + +#: settings/serializers/auth/sms.py:94 +msgid "The template needs to contain {code}" +msgstr "Mẫu tin nhắn cần phải chứa {code}" + +#: settings/serializers/auth/sms.py:97 +msgid "Signature + Template must not exceed 65 words" +msgstr "Mẫu + chữ ký không được vượt quá 65 ký tự" + +#: settings/serializers/auth/sms.py:106 +msgid "URL" +msgstr "URL" + +#: settings/serializers/auth/sso.py:16 +msgid "Enable SSO auth" +msgstr "Kích hoạt xác thực token SSO" + +#: settings/serializers/auth/sso.py:17 +msgid "Other service can using SSO token login to JumpServer without password" +msgstr "" +"Các hệ thống khác có thể sử dụng SSO Token để kết nối với JumpServer, miễn " +"quá trình đăng nhập" + +#: settings/serializers/auth/sso.py:20 +msgid "SSO auth key TTL" +msgstr "Thời gian hiệu lực token" + +#: settings/serializers/auth/sso.py:20 +#: xpack/plugins/cloud/serializers/account_attrs.py:231 +msgid "Unit: second" +msgstr "Đơn vị: giây" + +#: settings/serializers/auth/wecom.py:20 +msgid "" +"User attribute mapping, where the `key` is the JumpServer user attribute " +"name and the `value` is the WeCom service user attribute name" +msgstr "" +"Ánh xạ thuộc tính người dùng, trong đó `key` là tên thuộc tính người dùng " +"JumpServer, `value` là tên thuộc tính người dùng dịch vụ WeChat doanh nghiệp" + +#: settings/serializers/basic.py:11 +msgid "Site URL" +msgstr "URL của trang hiện tại" + +#: settings/serializers/basic.py:13 +msgid "" +"Site URL is the externally accessible address of the current product service" +" and is usually used in links in system emails" +msgstr "" +"URL của trang là địa chỉ có thể truy cập bên ngoài của dịch vụ sản phẩm hiện" +" tại, thường được sử dụng trong các liên kết trong email hệ thống" + +#: settings/serializers/basic.py:18 +msgid "User guide url" +msgstr "URL hướng dẫn người dùng" + +#: settings/serializers/basic.py:19 +msgid "User first login update profile done redirect to it" +msgstr "" +"Khi người dùng lần đầu tiên đăng nhập, sau khi chỉnh sửa hồ sơ sẽ được " +"chuyển hướng đến địa chỉ, có thể là wiki hoặc tài liệu hướng dẫn khác" + +#: settings/serializers/basic.py:22 +msgid "Global org display" +msgstr "Tên tổ chức toàn cầu" + +#: settings/serializers/basic.py:23 +msgid "The name of global organization to display" +msgstr "Tên hiển thị của tổ chức toàn cầu, mặc định là Tổ chức toàn cầu" + +#: settings/serializers/basic.py:26 +msgid "Document URL" +msgstr "Liên kết tài liệu" + +#: settings/serializers/basic.py:27 +msgid "" +"Document URL refers to the address in the top navigation bar Help - Document" +msgstr "" +"URL tài liệu chỉ địa chỉ trong thanh điều hướng cấp cao nhất, giúp đỡ - tài " +"liệu" + +#: settings/serializers/basic.py:30 +msgid "Support URL" +msgstr "Hỗ trợ liên kết" + +#: settings/serializers/basic.py:31 +msgid "" +"Support URL refers to the address in the top navigation bar Help - Support" +msgstr "" +"Hỗ trợ URL đề cập đến địa chỉ trong thanh điều hướng chính, trợ giúp - Hỗ " +"trợ" + +#: settings/serializers/basic.py:44 +msgid "Organization name already exists" +msgstr "Tên tổ chức đã tồn tại" + +#: settings/serializers/cleaning.py:11 +msgid "Period clean" +msgstr "Dọn dẹp định kỳ" + +#: settings/serializers/cleaning.py:15 +msgid "Login log retention days (day)" +msgstr "Nhật ký đăng nhập (ngày)" + +#: settings/serializers/cleaning.py:19 +msgid "Task log retention days (day)" +msgstr "Nhật ký tác vụ (ngày)" + +#: settings/serializers/cleaning.py:23 +msgid "Operate log retention days (day)" +msgstr "Nhật ký hành động (ngày)" + +#: settings/serializers/cleaning.py:27 +msgid "password change log keep days (day)" +msgstr "Nhật ký thay đổi mật khẩu" + +#: settings/serializers/cleaning.py:31 +msgid "FTP log retention days (day)" +msgstr "Tải lên và tải xuống (ngày)" + +#: settings/serializers/cleaning.py:35 +msgid "Cloud sync task history retention days (day)" +msgstr "Hồ sơ đồng bộ đám mây (ngày)" + +#: settings/serializers/cleaning.py:39 +msgid "job execution retention days (day)" +msgstr "Lịch sử thực hiện trung tâm công việc (ngày)" + +#: settings/serializers/cleaning.py:43 +msgid "Activity log retention days (day)" +msgstr "Hồ sơ hoạt động (ngày)" + +#: settings/serializers/cleaning.py:46 +msgid "Session log retention days (day)" +msgstr "Nhật ký phiên (ngày)" + +#: settings/serializers/cleaning.py:48 +msgid "" +"Session, record, command will be delete if more than duration, only in " +"database, OSS will not be affected." +msgstr "" +"Phiên, ghi hình, nhật ký lệnh vượt quá thời gian này sẽ bị xóa (ảnh hưởng " +"tới lưu trữ cơ sở dữ liệu, không ảnh hưởng tới OSS)" + +#: settings/serializers/cleaning.py:53 +msgid "Change secret and push record retention days (day)" +msgstr "Số ngày lưu giữ nhật ký đẩy thay đổi mật khẩu (ngày)" + +#: settings/serializers/feature.py:23 settings/serializers/msg.py:68 +msgid "Subject" +msgstr "Chủ đề" + +#: settings/serializers/feature.py:27 +msgid "More Link" +msgstr "Thông tin thêm URL" + +#: settings/serializers/feature.py:43 settings/serializers/feature.py:45 +#: settings/serializers/feature.py:46 +msgid "Announcement" +msgstr "Thông báo" + +#: settings/serializers/feature.py:59 settings/serializers/feature.py:62 +msgid "Vault" +msgstr "Kích hoạt Vault" + +#: settings/serializers/feature.py:65 +msgid "Vault provider" +msgstr "Nhà cung cấp kho lưu trữ" + +#: settings/serializers/feature.py:69 +msgid "Record limit" +msgstr "Giới hạn hồ sơ" + +#: settings/serializers/feature.py:71 +msgid "" +"If the specific value is less than 999 (default), the system will " +"automatically perform a task every night: check and delete historical " +"accounts that exceed the predetermined number. If the value reaches or " +"exceeds 999 (default), no historical account deletion will be performed" +msgstr "" +"Nếu giá trị cụ thể nhỏ hơn 999, hệ thống sẽ tự động thực hiện nhiệm vụ vào " +"mỗi buổi tối: kiểm tra và xóa những tài khoản lịch sử vượt quá số lượng quy " +"định. Nếu giá trị này đạt hoặc vượt qua 999, sẽ không thực hiện bất kỳ thao " +"tác xóa tài khoản lịch sử nào." + +#: settings/serializers/feature.py:89 +msgid "Mount Point" +msgstr "Điểm gắn kết" + +#: settings/serializers/feature.py:105 +#: xpack/plugins/cloud/serializers/account_attrs.py:56 +msgid "Tenant ID" +msgstr "ID thuê bao" + +#: 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/models.py:292 +msgid "Region" +msgstr "Khu vực" + +#: settings/serializers/feature.py:115 terminal/serializers/storage.py:33 +msgid "Access key ID" +msgstr "ID khoá truy cập (AK)" + +#: settings/serializers/feature.py:119 terminal/serializers/storage.py:37 +#: xpack/plugins/cloud/serializers/account_attrs.py:35 +msgid "Access key secret" +msgstr "Bí mật khoá truy cập (SK)" + +#: settings/serializers/feature.py:124 settings/serializers/feature.py:127 +msgid "Chat AI" +msgstr "AI trò chuyện" + +#: settings/serializers/feature.py:131 +msgid "Method" +msgstr "Cách tạo" + +#: settings/serializers/feature.py:134 settings/serializers/feature.py:142 +#: settings/serializers/feature.py:157 +msgid "Base URL" +msgstr "Địa chỉ" + +#: settings/serializers/feature.py:135 settings/serializers/feature.py:143 +#: settings/serializers/feature.py:158 +msgid "The base URL of the Chat service." +msgstr "Địa chỉ cơ bản của dịch vụ trò chuyện." + +#: settings/serializers/feature.py:146 settings/serializers/feature.py:161 +#: templates/_header_bar.html:96 +msgid "API Key" +msgstr "API Key" + +#: settings/serializers/feature.py:150 settings/serializers/feature.py:165 +msgid "" +"The proxy server address of the GPT service. For example: http://ip:port" +msgstr "Địa chỉ máy chủ proxy của dịch vụ GPT. Ví dụ: http://ip:port" + +#: settings/serializers/feature.py:154 +msgid "GPT Model" +msgstr "Mô hình GPT" + +#: settings/serializers/feature.py:169 +msgid "DeepSeek Model" +msgstr "Mô hình DeepSeek" + +#: settings/serializers/feature.py:178 +msgid "Approval without login" +msgstr "Phê duyệt không cần đăng nhập" + +#: settings/serializers/feature.py:179 +msgid "Allow direct approval ticket without login" +msgstr "Cho phép phê duyệt đơn yêu cầu mà không cần đăng nhập trực tiếp" + +#: settings/serializers/feature.py:183 +msgid "Period" +msgstr "Thời gian" + +#: settings/serializers/feature.py:184 +msgid "" +"The default authorization time period when applying for assets via a ticket" +msgstr "Khoảng thời gian ủy quyền mặc định cho tài sản yêu cầu đơn" + +#: settings/serializers/feature.py:187 +msgid "hour" +msgstr "Thời điểm" + +#: settings/serializers/feature.py:188 +msgid "Unit" +msgstr "Đơn vị" + +#: settings/serializers/feature.py:188 +msgid "The unit of period" +msgstr "Chu kỳ thực hiện" + +#: settings/serializers/feature.py:196 +msgid "Adhoc command" +msgstr "Thực thi lệnh hàng loạt" + +#: settings/serializers/feature.py:197 +msgid "" +"Allow users to execute batch commands in the Workbench - Job Center - Adhoc" +msgstr "" +"Cho phép người dùng thực hiện lệnh hàng loạt trong trạm làm việc - Trung tâm" +" công việc - Adhoc" + +#: settings/serializers/feature.py:201 +msgid "Command blacklist" +msgstr "Danh sách đen lệnh trung tâm công việc." + +#: settings/serializers/feature.py:202 +msgid "Command blacklist in Adhoc" +msgstr "Trung tâm tác vụ danh sách đen" + +#: settings/serializers/feature.py:208 +#: terminal/models/virtualapp/provider.py:17 +#: terminal/models/virtualapp/virtualapp.py:36 +#: terminal/models/virtualapp/virtualapp.py:97 +#: terminal/serializers/virtualapp.py:33 +msgid "Virtual app" +msgstr "Ứng dụng ảo" + +#: settings/serializers/feature.py:211 +msgid "Virtual App" +msgstr "Ứng dụng ảo" + +#: settings/serializers/feature.py:213 +msgid "" +"Virtual applications, you can use the Linux operating system as an " +"application server in remote applications." +msgstr "" +"Ứng dụng ảo, có thể sử dụng hệ điều hành Linux như một máy chủ ứng dụng " +"trong ứng dụng từ xa." + +#: settings/serializers/msg.py:24 +msgid "SMTP" +msgstr "SMTP" + +#: settings/serializers/msg.py:25 +msgid "Microsoft Exchange Server" +msgstr "Máy chủ Microsoft Exchange" + +#: settings/serializers/msg.py:28 +msgid "Service" +msgstr "Dịch vụ" + +#: settings/serializers/msg.py:34 +msgid "The user to be used for email server authentication" +msgstr "" +"Tên người dùng để đăng nhập vào máy chủ email. Điều này thường là địa chỉ " +"email của bạn" + +#: settings/serializers/msg.py:38 +msgid "" +"Password to use for the email server. It is used in conjunction with " +"`Account` when authenticating to the email server" +msgstr "" +"Mật khẩu sử dụng cho máy chủ email. Khi xác thực vào máy chủ email, nó được " +"sử dụng cùng với `tài khoản`" + +#: settings/serializers/msg.py:41 +msgid "Sender" +msgstr "Người gửi" + +#: settings/serializers/msg.py:42 +msgid "Sender email address (default to using the `Account`)" +msgstr "Địa chỉ email của người gửi (mặc định sử dụng `tài khoản`)" + +#: settings/serializers/msg.py:46 +msgid "The recipient is used for testing the email server's connectivity" +msgstr "Người nhận được sử dụng để kiểm tra tính khả dụng của máy chủ email" + +#: settings/serializers/msg.py:51 +msgid "" +"Whether to use an implicit TLS (secure) connection when talking to the SMTP " +"server. In most email documentation this type of TLS connection is referred " +"to as SSL. It is generally used on port 465" +msgstr "" +"Khi giao tiếp với máy chủ SMTP có sử dụng kết nối TLS ẩn (bảo mật) hay " +"không. Trong hầu hết các tài liệu email, loại kết nối TLS này được gọi là " +"SSL. Nó thường được sử dụng trên cổng 465" + +#: settings/serializers/msg.py:54 +msgid "Use TLS" +msgstr "Sử dụng TLS" + +#: settings/serializers/msg.py:56 +msgid "" +"Whether to use a TLS (secure) connection when talking to the SMTP server. " +"This is used for explicit TLS connections, generally on port 587" +msgstr "" +"Khi giao tiếp với máy chủ SMTP có sử dụng kết nối TLS (bảo mật) hay không. " +"Điều này được sử dụng cho kết nối TLS rõ ràng, thường trên cổng 587." + +#: settings/serializers/msg.py:64 +msgid "Subject prefix" +msgstr "Chủ đề tiền tố" + +#: settings/serializers/msg.py:69 +msgid "" +"Tips: When creating a user, send the subject of the email (eg:Create account" +" successfully)" +msgstr "" +"Gợi ý: Khi tạo người dùng, gửi email thiết lập mật khẩu với chủ đề (ví dụ: " +"Tạo người dùng thành công)" + +#: settings/serializers/msg.py:73 +msgid "Honorific" +msgstr "Lời chào email" + +#: settings/serializers/msg.py:74 +msgid "Tips: When creating a user, send the honorific of the email (eg:Hello)" +msgstr "" +"Gợi ý: Khi tạo người dùng, gửi email thiết lập mật khẩu với lời xưng hô (ví " +"dụ: Xin chào)" + +#: settings/serializers/msg.py:80 +msgid "" +"Tips: When creating a user, send the content of the email, support " +"{username} {name} {email} label" +msgstr "" +"Gợi ý: Khi tạo người dùng, gửi nội dung email thiết lập mật khẩu, hỗ trợ các" +" thẻ {username} {name} {email}" + +#: settings/serializers/msg.py:84 +msgid "Tips: Email signature (eg:jumpserver)" +msgstr "Chữ ký email (ví dụ: jumpserver)" + +#: settings/serializers/other.py:8 +msgid "More..." +msgstr "Nhiều hơn..." + +#: settings/serializers/other.py:11 +msgid "Perm ungroup node" +msgstr "Hiện thị nút không phân nhóm" + +#: settings/serializers/other.py:12 +msgid "Perm single to ungroup node" +msgstr "" +"Đặt tài sản được ủy quyền riêng biệt vào nút không phân nhóm, tránh vấn đề " +"nhìn thấy nút của tài sản nhưng chưa được ủy quyền" + +#: settings/serializers/security.py:19 +msgid "User password expiration (day)" +msgstr "Thời gian hết hạn mật khẩu người dùng (ngày)" + +#: settings/serializers/security.py:21 +msgid "" +"If the user does not update the password during the time, the user password " +"will expire failure;The password expiration reminder mail will be automatic " +"sent to the user by system within 5 days (daily) before the password expires" +msgstr "" +"Nếu người dùng không cập nhật mật khẩu trong thời gian này, mật khẩu sẽ hết " +"hạn; email nhắc nhở hết hạn mật khẩu sẽ tự động gửi cho người dùng (mỗi " +"ngày) trong vòng 5 ngày trước khi mật khẩu hết hạn" + +#: settings/serializers/security.py:28 +msgid "User expired tokens record keep days" +msgstr "Số ngày giữ lại Token hết hạn của người dùng" + +#: settings/serializers/security.py:29 +msgid "" +"Retention period (in days) for expired user tokens before automatic cleanup." +msgstr "" +"Số ngày trước khi hệ thống xóa vĩnh viễn bản ghi token hết hạn của người " +"dùng trong nhiệm vụ dọn dẹp hàng ngày" + +#: settings/serializers/security.py:33 +msgid "Recent password count" +msgstr "Không thể đặt lại những mật khẩu gần đây" + +#: settings/serializers/security.py:35 +msgid "" +"Tip: When the user resets the password, it cannot be the previous n " +"historical passwords of the user" +msgstr "" +"Gợi ý: Khi người dùng đặt lại mật khẩu, không thể sử dụng những mật khẩu " +"trước đây mà người dùng đã từng sử dụng." + +#: settings/serializers/security.py:41 +msgid "Minimum length (User)" +msgstr "Mật khẩu tối thiểu" + +#: settings/serializers/security.py:45 +msgid "Minimum length (Admin)" +msgstr "Mật khẩu quản trị viên tối thiểu" + +#: settings/serializers/security.py:54 +msgid "Digits" +msgstr "Phải chứa số" + +#: settings/serializers/security.py:57 +msgid "Special characters" +msgstr "Phải chứa ký tự đặc biệt" + +#: settings/serializers/security.py:62 +msgid "" +"If the user has failed to log in for a limited number of times, no login is " +"allowed during this time interval." +msgstr "" +"Khi số lần đăng nhập của người dùng không thành công đạt giới hạn, thì sẽ bị" +" cấm đăng nhập trong khoảng thời gian này" + +#: settings/serializers/security.py:70 settings/serializers/security.py:80 +msgid "Login failures count" +msgstr "Giới hạn số lần đăng nhập không thành công của người dùng" + +#: settings/serializers/security.py:74 settings/serializers/security.py:84 +msgid "Login failure period (minute)" +msgstr "Cấm khoảng thời gian đăng nhập của người dùng (phút)" + +#: settings/serializers/security.py:88 +msgid "Login IP whitelist" +msgstr "Danh sách trắng IP để đăng nhập" + +#: settings/serializers/security.py:93 +msgid "Login IP blacklist" +msgstr "Danh sách đen IP để đăng nhập" + +#: settings/serializers/security.py:98 +msgid "Only single device login" +msgstr "Chỉ cho phép một thiết bị đăng nhập" + +#: settings/serializers/security.py:99 +msgid "" +"After the user logs in on the new device, other logged-in devices will " +"automatically log out" +msgstr "" +"Khi người dùng đăng nhập trên thiết bị mới, các thiết bị đã đăng nhập khác " +"sẽ tự động thoát" + +#: settings/serializers/security.py:102 +msgid "Only exist user login" +msgstr "Chỉ cho phép người dùng đã tồn tại đăng nhập" + +#: settings/serializers/security.py:104 +msgid "" +"If enabled, non-existent users will not be allowed to log in; if disabled, " +"users of other authentication methods except local authentication methods " +"are allowed to log in and automatically create users (if the user does not " +"exist)" +msgstr "" +"Nếu bật, người dùng không tồn tại sẽ không được phép đăng nhập; nếu tắt, " +"ngoài phương thức xác thực cục bộ, các phương thức xác thực khác vẫn cho " +"phép đăng nhập và tự động tạo người dùng (nếu người dùng không tồn tại)" + +#: settings/serializers/security.py:110 +msgid "Only from source login" +msgstr "Chỉ cho phép đăng nhập từ nguồn người dùng" + +#: settings/serializers/security.py:112 +msgid "" +"If it is enabled, the user will only authenticate to the source when logging" +" in; if it is disabled, the user will authenticate all the enabled " +"authentication methods in a certain order when logging in, and as long as " +"one of the authentication methods is successful, they can log in directly" +msgstr "" +"Nếu bật, khi người dùng đăng nhập sẽ chỉ thực hiện xác thực tại nguồn; nếu " +"tắt, khi người dùng đăng nhập sẽ tiến hành xác thực theo thứ tự nhất định " +"với tất cả các phương thức xác thực đã bật, chỉ cần một phương thức xác thực" +" thành công là có thể đăng nhập ngay." + +#: settings/serializers/security.py:123 +#: users/templates/users/mfa_setting.html:160 +msgid "Not enabled" +msgstr "Chưa kích hoạt" + +#: settings/serializers/security.py:124 +msgid "All users" +msgstr "Tất cả người dùng" + +#: settings/serializers/security.py:125 +msgid "Only admin users" +msgstr "Chỉ quản trị viên" + +#: settings/serializers/security.py:127 +msgid "Global MFA" +msgstr "Bật xác thực MFA toàn cầu" + +#: settings/serializers/security.py:131 +msgid "Third-party login MFA" +msgstr "Bật xác thực MFA của bên thứ ba" + +#: settings/serializers/security.py:135 +msgid "MFA via Email" +msgstr "Xác thực qua email MFA" + +#: settings/serializers/security.py:136 +msgid "Email as a method for multi-factor authentication" +msgstr "Sử dụng email như một phương thức xác thực nhiều yếu tố" + +#: settings/serializers/security.py:139 +msgid "OTP issuer name" +msgstr "Tên sau khi quét OTP" + +#: settings/serializers/security.py:143 +msgid "OTP valid window" +msgstr "Thời gian hiệu lực của OTP" + +#: settings/serializers/security.py:147 +msgid "MFA verify TTL" +msgstr "Thời gian kiểm tra MFA" + +#: settings/serializers/security.py:149 +msgid "" +"Unit: second, The verification MFA takes effect only when you view the " +"account password" +msgstr "" +"Đơn vị: giây, hiện tại chỉ có hiệu lực khi xem xác thực tài khoản và mật " +"khẩu với MFA" + +#: settings/serializers/security.py:154 +msgid "MFA in login page" +msgstr "MFA nhập tại trang đăng nhập" + +#: settings/serializers/security.py:155 +msgid "Eu security regulations(GDPR) require MFA to be on the login page" +msgstr "" +"Quy định bảo mật dữ liệu EU (GDPR) yêu cầu MFA trên trang đăng nhập để đảm " +"bảo an toàn khi đăng nhập vào hệ thống" + +#: settings/serializers/security.py:159 +msgid "Verify code TTL (second)" +msgstr "Thời gian hiệu lực của mã xác thực (phút)" + +#: settings/serializers/security.py:160 +msgid "Reset password and send SMS code expiration time" +msgstr "" +"Thời gian hết hạn của mã xác thực khi đặt lại mật khẩu và mã xác thực khi " +"gửi SMS." + +#: settings/serializers/security.py:164 +msgid "Login dynamic code" +msgstr "Kích hoạt mã xác thực đăng nhập" + +#: settings/serializers/security.py:165 +msgid "" +"The password and additional code are sent to a third party authentication " +"system for verification" +msgstr "" +"Mật khẩu và mã xác thực sẽ được gửi đến hệ thống xác thực bên thứ ba để kiểm" +" tra, ví dụ: một số hệ thống xác thực bên thứ ba yêu cầu Mật khẩu + 6 chữ số" +" để hoàn thành xác thực" + +#: settings/serializers/security.py:169 +msgid "Login CAPTCHA" +msgstr "Kích hoạt mã xác thực đăng nhập" + +#: settings/serializers/security.py:170 +msgid "Enable CAPTCHA to prevent robot authentication" +msgstr "Bật mã xác thực để ngăn chặn đăng nhập của robot" + +#: settings/serializers/security.py:173 +msgid "Suspicious Login Verification" +msgstr "Thông báo đăng nhập từ xa" + +#: settings/serializers/security.py:175 +msgid "" +"The system determines whether the login IP address belongs to a common login" +" city. If the account is logged in from a common login city, the system " +"sends a remote login reminder" +msgstr "" +"Dựa trên IP đăng nhập có thuộc thành phố đăng nhập thường xuyên hay không, " +"nếu tài khoản đăng nhập tại thành phố không thường dùng sẽ gửi thông báo " +"đăng nhập từ xa" + +#: settings/serializers/security.py:181 +msgid "Auto Disable Threshold (day)" +msgstr "Tự động vô hiệu hóa người dùng không hoạt động (ngày)" + +#: settings/serializers/security.py:182 +msgid "" +"Detect infrequent users daily and disable them if they exceed the " +"predetermined time limit" +msgstr "" +"Kiểm tra mỗi ngày, những người dùng vượt quá thời gian quy định sẽ tự động " +"bị vô hiệu hóa" + +#: settings/serializers/security.py:202 +msgid "Watermark" +msgstr "Bật hình mờ" + +#: settings/serializers/security.py:205 +msgid "Watermark session content" +msgstr "Nội dung hình mờ cuộc trò chuyện tùy chỉnh" + +#: settings/serializers/security.py:208 +msgid "Watermark console content" +msgstr "Nội dung hình mờ trang quản trị tùy chỉnh" + +#: settings/serializers/security.py:214 +msgid "Watermark font size" +msgstr "Font chữ và cỡ chữ" + +#: settings/serializers/security.py:217 +msgid "Watermark height" +msgstr "Chiều cao hình mờ đơn lẻ" + +#: settings/serializers/security.py:220 +msgid "Watermark width" +msgstr "Chiều rộng hình mờ đơn lẻ" + +#: settings/serializers/security.py:223 +msgid "Watermark rotate" +msgstr "Góc xoay hình mờ" + +#: settings/serializers/security.py:227 +msgid "Max idle time (minute)" +msgstr "Thời gian tối đa kết nối nhàn rỗi (phút)" + +#: settings/serializers/security.py:228 +msgid "If idle time more than it, disconnect connection." +msgstr "" +"Ghi chú: Nếu vượt quá cấu hình này mà không có hành động nào, kết nối sẽ bị " +"ngắt" + +#: settings/serializers/security.py:231 +msgid "Session expire at browser closed" +msgstr "Phiên sẽ hết hạn khi trình duyệt đóng" + +#: settings/serializers/security.py:232 +msgid "Whether to expire the session when the user closes their browser." +msgstr "Có làm phiên hết hạn khi người dùng đóng trình duyệt không." + +#: settings/serializers/security.py:237 +msgid "Allow users to view asset session information" +msgstr "Cho phép người dùng xem thông tin phiên trực tuyến của tài sản" + +#: settings/serializers/security.py:239 +msgid "" +"When a user connects to an asset, the account selection popup displays the " +"number of active sessions for the current asset (RDP protocol only)." +msgstr "" +"Khi người dùng kết nối tài sản, số lượng phiên trực tuyến hiện tại của tài " +"sản sẽ xuất hiện trong hộp chọn tài khoản (chỉ với giao thức RDP)" + +#: settings/serializers/security.py:245 +msgid "Max online time (hour)" +msgstr "Thời gian tối đa kết nối phiên (giờ)" + +#: settings/serializers/security.py:246 +msgid "If session connection time more than it, disconnect connection." +msgstr "" +"Ghi chú: Nếu thời gian kết nối phiên vượt quá cấu hình này, kết nối sẽ bị " +"ngắt" + +#: settings/serializers/security.py:249 +msgid "Remember manual auth" +msgstr "Lưu mật khẩu nhập tay" + +#: settings/serializers/security.py:252 +#: terminal/templates/terminal/_msg_session_sharing.html:10 +msgid "Session share" +msgstr "Chia sẻ phiên" + +#: settings/serializers/security.py:253 +msgid "Enabled, Allows user active session to be shared with other users" +msgstr "" +"Bật tính năng này cho phép người dùng chia sẻ phiên tài sản đã kết nối với " +"người khác, làm việc cùng nhau" + +#: settings/serializers/security.py:259 +msgid "Insecure command alert" +msgstr "Cảnh báo lệnh nguy hiểm" + +#: settings/serializers/security.py:262 +msgid "Email recipient" +msgstr "Người nhận email" + +#: settings/serializers/security.py:263 +msgid "Multiple user using , split" +msgstr "Nhiều người dùng, sử dụng dấu phẩy để phân tách" + +#: settings/serializers/settings.py:62 +msgid "[%s] %s" +msgstr "[%s] %s" + +#: settings/serializers/terminal.py:15 +msgid "Auto" +msgstr "Tự động" + +#: settings/serializers/terminal.py:23 +msgid "Auto(Enabled for the first 5 minutes after startup, then disabled)" +msgstr "Tự động (bật trong 5 phút sau khi khởi động, sau đó tắt)" + +#: settings/serializers/terminal.py:26 +msgid "Registration" +msgstr "Đăng ký thành phần" + +#: settings/serializers/terminal.py:28 +msgid "" +"Allow component register, after all component setup, you should disable this" +" for security" +msgstr "" +"Có cho phép đăng ký thành phần hay không, nên tắt sau khi tất cả các thiết " +"bị khởi động để đảm bảo an toàn" + +#: settings/serializers/terminal.py:34 +msgid "" +"* Allow users to log in to the KoKo component via password authentication" +msgstr "" +"* Cho phép người dùng đăng nhập vào thành phần KoKo bằng xác thực mật khẩu" + +#: settings/serializers/terminal.py:40 +msgid "" +"* Allow users to log in to the KoKo component via Public key " +"authentication
If third-party authentication services, such as AD/LDAP, " +"are enabled, you should disable this option to prevent users from logging in" +" after being deleted from the AD/LDAP server" +msgstr "" +"* Cho phép người dùng đăng nhập vào thành phần KoKo bằng phương thức xác " +"thực khóa công khai
Nếu dịch vụ xác thực bên thứ ba (như AD/LDAP) đã " +"được bật, thì tùy chọn này nên được tắt để ngăn chặn việc người dùng đăng " +"nhập lại sau khi bị xóa từ máy chủ AD/LDAP" + +#: settings/serializers/terminal.py:47 +msgid "Asset sorting" +msgstr "Sắp xếp danh sách tài sản" + +#: settings/serializers/terminal.py:50 +msgid "Asset page size" +msgstr "Số lượng tài sản mỗi trang" + +#: settings/serializers/terminal.py:55 +msgid "" +"* You can individually configure the service address and port in the service" +" endpoint
If enabled, the Luna page will display the DB client launch " +"method when connecting to assets" +msgstr "" +"* Bạn có thể cấu hình địa chỉ và cổng dịch vụ riêng lẻ trong điểm cuối dịch " +"vụ
Nếu được bật, trang Luna sẽ hiển thị phương pháp khởi động khách hàng" +" DB khi kết nối với tài sản" + +#: settings/serializers/terminal.py:63 +msgid "" +"* You can individually configure the service address and port in the service" +" endpoint
If enabled, the Luna page will display the download rdp file " +"button and RDP Client launch method when connecting to assets" +msgstr "" +"* Bạn có thể cấu hình địa chỉ và cổng dịch vụ riêng lẻ trong điểm cuối dịch " +"vụ
Nếu được bật, trang Luna sẽ hiển thị nút tải xuống tệp rdp và phương " +"pháp khởi động khách hàng RDP khi kết nối với tài sản" + +#: settings/serializers/terminal.py:70 +msgid "Client connection" +msgstr "Kết nối khách hàng" + +#: settings/serializers/terminal.py:72 +msgid "" +"* Allow connecting to the KoKo component via SSH client
If enabled, the " +"Luna page will display the SSH client launch method when connecting to " +"assets" +msgstr "" +"* Cho phép kết nối đến thành phần KoKo thông qua khách hàng SSH
Nếu được" +" bật, khi kết nối đến tài sản, trang Luna sẽ hiển thị phương pháp khởi động " +"khách hàng SSH" + +#: settings/serializers/tool.py:10 +msgid "Tool" +msgstr "Công cụ" + +#: settings/serializers/tool.py:13 +msgid "Tools in the Workbench" +msgstr "Công cụ trong bảng điều khiển" + +#: settings/serializers/tool.py:15 +msgid "" +"*! If enabled, users with RBAC permissions will be able to utilize all tools" +" in the workbench" +msgstr "" +"*! Nếu được bật, người dùng có quyền RBAC sẽ có thể sử dụng tất cả các công " +"cụ trong bảng điều khiển" + +#: settings/tasks/ldap.py:67 +msgid "Periodic import ldap user" +msgstr "Nhập khẩu người dùng LDAP theo chu kỳ" + +#: settings/tasks/ldap.py:69 settings/tasks/ldap.py:79 +msgid "" +"When LDAP auto-sync is configured, this task will be invoked to synchronize " +"users" +msgstr "" +"Khi đã thiết lập đồng bộ tự động LDAP, nhiệm vụ này sẽ được gọi để đồng bộ " +"người dùng" + +#: settings/tasks/ldap.py:77 +msgid "Periodic import ldap ha user" +msgstr "Nhập khẩu người dùng LDAP HA theo chu kỳ" + +#: settings/tasks/ldap.py:115 +msgid "Registration periodic import ldap user task" +msgstr "Đăng ký nhiệm vụ nhập khẩu người dùng LDAP theo chu kỳ" + +#: settings/tasks/ldap.py:117 +msgid "" +"When LDAP auto-sync parameters change, such as Crontab parameters, the LDAP sync task \n" +" will be re-registered or updated, and this task will be invoked" +msgstr "" +"Khi các tham số đồng bộ tự động LDAP thay đổi, chẳng hạn như tham số " +"Crontab, sẽ gọi nhiệm vụ này để đăng ký hoặc cập nhật nhiệm vụ đồng bộ LDAP" + +#: settings/tasks/ldap.py:131 +msgid "Registration periodic import ldap ha user task" +msgstr "Đăng ký nhiệm vụ nhập khẩu người dùng LDAP HA theo chu kỳ" + +#: settings/tasks/ldap.py:133 +msgid "" +"When LDAP HA auto-sync parameters change, such as Crontab parameters, the LDAP HA sync task \n" +" will be re-registered or updated, and this task will be invoked" +msgstr "" +"Khi các tham số tự động đồng bộ LDAP HA thay đổi, như tham số Crontab, sẽ " +"đăng ký lại hoặc cập nhật \"nhiệm vụ đồng bộ LDAP HA\" và gọi nhiệm vụ này" + +#: settings/templates/ldap/_msg_import_ldap_user.html:2 +msgid "Sync task finish" +msgstr "Nhiệm vụ đồng bộ hoàn tất" + +#: settings/templates/ldap/_msg_import_ldap_user.html:9 +msgid "Synced Organization" +msgstr "Tổ chức đã đồng bộ" + +#: settings/templates/ldap/_msg_import_ldap_user.html:15 +msgid "Synced User" +msgstr "Người dùng đã đồng bộ" + +#: settings/templates/ldap/_msg_import_ldap_user.html:22 +msgid "No user synchronization required" +msgstr "Không có người dùng nào cần đồng bộ" + +#: settings/utils/ldap.py:529 +msgid "ldap:// or ldaps:// protocol is used." +msgstr "Sử dụng giao thức ldap:// hoặc ldaps://" + +#: settings/utils/ldap.py:540 +msgid "Host or port is disconnected: {}" +msgstr "Máy chủ hoặc cổng không thể kết nối: {}" + +#: settings/utils/ldap.py:542 +msgid "The port is not the port of the LDAP service: {}" +msgstr "Cổng không phải là cổng dịch vụ LDAP: {}" + +#: settings/utils/ldap.py:544 +msgid "Please add certificate: {}" +msgstr "Vui lòng thêm chứng chỉ" + +#: settings/utils/ldap.py:548 settings/utils/ldap.py:575 +#: settings/utils/ldap.py:605 settings/utils/ldap.py:633 +msgid "Unknown error: {}" +msgstr "Lỗi không xác định: {}" + +#: settings/utils/ldap.py:562 +msgid "Bind DN or Password incorrect" +msgstr "Sai DN ràng buộc hoặc mật khẩu" + +#: settings/utils/ldap.py:569 +msgid "Please enter Bind DN: {}" +msgstr "Vui lòng nhập DN ràng buộc: {}" + +#: settings/utils/ldap.py:571 +msgid "Please enter Password: {}" +msgstr "Vui lòng nhập mật khẩu: {}" + +#: settings/utils/ldap.py:573 +msgid "Please enter correct Bind DN and Password: {}" +msgstr "Vui lòng nhập DN ràng buộc và mật khẩu đúng: {}" + +#: settings/utils/ldap.py:591 +msgid "Invalid User OU or User search filter: {}" +msgstr "OU người dùng hoặc bộ lọc người dùng không hợp lệ: {}" + +#: settings/utils/ldap.py:622 +msgid "LDAP User attr map not include: {}" +msgstr "ánh xạ thuộc tính LDAP không bao gồm: {}" + +#: settings/utils/ldap.py:629 +msgid "LDAP User attr map is not dict" +msgstr "ánh xạ thuộc tính LDAP không hợp lệ" + +#: settings/utils/ldap.py:648 +msgid "LDAP authentication is not enabled" +msgstr "Xác thực LDAP chưa được kích hoạt" + +#: settings/utils/ldap.py:666 +msgid "Error (Invalid LDAP server): {}" +msgstr "Lỗi (Địa chỉ máy chủ LDAP không hợp lệ): {}" + +#: settings/utils/ldap.py:668 +msgid "Error (Invalid Bind DN): {}" +msgstr "Lỗi (DN ràng buộc không hợp lệ): {}" + +#: settings/utils/ldap.py:670 +msgid "Error (Invalid LDAP User attr map): {}" +msgstr "Lỗi (ánh xạ thuộc tính LDAP không hợp lệ): {}" + +#: settings/utils/ldap.py:672 +msgid "Error (Invalid User OU or User search filter): {}" +msgstr "Lỗi (OU người dùng hoặc bộ lọc người dùng không hợp lệ): {}" + +#: settings/utils/ldap.py:674 +msgid "Error (Not enabled LDAP authentication): {}" +msgstr "Lỗi (Xác thực LDAP chưa được kích hoạt): {}" + +#: settings/utils/ldap.py:676 +msgid "Error (Unknown): {}" +msgstr "Lỗi (không xác định): {}" + +#: settings/utils/ldap.py:679 +msgid "Succeed: Match {} users" +msgstr "Thành công khớp {} người dùng" + +#: settings/utils/ldap.py:709 +msgid "Authentication failed (configuration incorrect): {}" +msgstr "Xác thực thất bại (lỗi cấu hình): {}" + +#: settings/utils/ldap.py:713 +msgid "Authentication failed (username or password incorrect): {}" +msgstr "Xác thực thất bại (tên người dùng hoặc mật khẩu không đúng): {}" + +#: settings/utils/ldap.py:715 +msgid "Authentication failed (Unknown): {}" +msgstr "Xác thực thất bại: (không xác định): {}" + +#: settings/utils/ldap.py:718 +msgid "Authentication success: {}" +msgstr "Xác thực thành công: {}" + +#: settings/ws.py:226 +msgid "No LDAP user was found" +msgstr "Không lấy được người dùng LDAP" + +#: settings/ws.py:235 +msgid "Total {}, success {}, failure {}" +msgstr "Tổng cộng {} , thành công {} , thất bại {}" + +#: settings/ws.py:239 +msgid ", disabled {}" +msgstr ", đã vô hiệu hóa {}" + +#: templates/_csv_import_export.html:13 templates/_csv_import_modal.html:5 +#: xpack/plugins/cloud/const.py:72 +msgid "Import" +msgstr "Nhập khẩu" + +#: templates/_csv_import_modal.html:12 +msgid "Download the imported template or use the exported CSV file format" +msgstr "Tải xuống mẫu nhập khẩu hoặc sử dụng định dạng CSV đã xuất" + +#: templates/_csv_import_modal.html:13 +msgid "Download the import template" +msgstr "Tải xuống mẫu nhập khẩu" + +#: templates/_csv_import_modal.html:17 templates/_csv_update_modal.html:17 +msgid "Select the CSV file to import" +msgstr "Vui lòng chọn tệp CSV để nhập khẩu" + +#: templates/_csv_import_modal.html:39 templates/_csv_update_modal.html:42 +msgid "Please select file" +msgstr "Chọn tệp" + +#: templates/_csv_update_modal.html:12 +msgid "Download the update template or use the exported CSV file format" +msgstr "Tải xuống mẫu cập nhật hoặc sử dụng định dạng CSV đã xuất" + +#: templates/_csv_update_modal.html:13 +msgid "Download the update template" +msgstr "Tải xuống mẫu cập nhật" + +#: templates/_foot_js.html:30 +msgid "Page footer" +msgstr "" + +#: templates/_header_bar.html:12 +msgid "Help" +msgstr "Giúp đỡ" + +#: templates/_header_bar.html:19 +msgid "Docs" +msgstr "Tài liệu" + +#: templates/_header_bar.html:27 +msgid "Commercial support" +msgstr "Hỗ trợ thương mại" + +#: templates/_header_bar.html:85 users/forms/profile.py:44 +msgid "Profile" +msgstr "Thông tin cá nhân" + +#: templates/_header_bar.html:89 +msgid "Admin page" +msgstr "Trang quản lý" + +#: templates/_header_bar.html:92 +msgid "User page" +msgstr "Trang người dùng" + +#: templates/_header_bar.html:97 +msgid "Logout" +msgstr "Đăng xuất" + +#: templates/_message.html:6 +msgid "Your account has expired, please contact the administrator." +msgstr "Tài khoản của bạn đã hết hạn, vui lòng liên hệ với quản lý." + +#: templates/_message.html:11 +msgid "Your account will at" +msgstr "Tài khoản của bạn sẽ hết hạn vào" + +#: templates/_message.html:11 templates/_message.html:26 +msgid "expired. " +msgstr "Hết hạn vào." + +#: templates/_message.html:21 +msgid "" +"Your password has expired, please click this link update password." +msgstr "" +"Mật khẩu của bạn đã hết hạn, vui lòng nhấp vào liên kết để cập nhật mật khẩu" + +#: templates/_message.html:26 +msgid "Your password will at" +msgstr "Mật khẩu của bạn sẽ hết hạn vào" + +#: templates/_message.html:27 +msgid "" +"please click this link to " +"update your password." +msgstr "" +"Vui lòng nhấp vào liên kết để" +" cập nhật mật khẩu" + +#: templates/_message.html:37 +msgid "" +"Your information was incomplete. Please click this link to complete your information." +msgstr "" +"Thông tin của bạn chưa đầy đủ, vui lòng nhấp vào liên kết để bổ sung vào" + +#: templates/_message.html:48 +msgid "" +"Your ssh public key not set or expired. Please click this link to update" +msgstr "" +"Khóa SSH của bạn chưa được thiết lập hoặc đã hết hiệu lực, vui lòng nhấp vào" +" liên kết để cập nhật." + +#: templates/_mfa_login_field.html:29 +#: users/templates/users/forgot_password.html:101 +msgid "Send" +msgstr "Gửi" + +#: templates/_mfa_login_field.html:108 +#: users/templates/users/forgot_password.html:176 +msgid "Wait: " +msgstr "Đang chờ:" + +#: templates/_mfa_login_field.html:118 +#: users/templates/users/forgot_password.html:192 +msgid "The verification code has been sent" +msgstr "Mã xác thực đã được gửi" + +#: templates/_without_nav_base.html:46 +msgid "Home page" +msgstr "Home" + +#: templates/redirect_confirm.html:26 +msgid "" +"You are about to be redirected to an external website. Please confirm that " +"you trust this link: " +msgstr "" +"Bạn sắp chuyển đến một trang web bên ngoài, xin hãy xác nhận rằng bạn tin " +"tưởng liên kết này" + +#: templates/resource_download.html:20 templates/resource_download.html:35 +#: users/const.py:77 +msgid "Client" +msgstr "Khách hàng" + +#: templates/resource_download.html:22 +msgid "JumpServer Client, currently used to launch the client" +msgstr "" +"Khách hàng JumpServer, hiện tại được sử dụng để khởi động chương trình khách" +" hàng cụ thể để kết nối tài sản" + +#: templates/resource_download.html:35 +msgid "Microsoft" +msgstr "Microsoft" + +#: templates/resource_download.html:35 +msgid "Official" +msgstr "Chính thức" + +#: templates/resource_download.html:37 +msgid "" +"macOS needs to download the client to connect RDP asset, which comes with " +"Windows" +msgstr "" +"macOS cần tải xuống khách hàng để kết nối tài sản RDP, hệ thống Windows đã " +"cài đặt sẵn chương trình này" + +#: templates/resource_download.html:45 +msgid "Windows Remote application publisher tools" +msgstr "Công cụ máy chủ ứng dụng từ xa Windows" + +#: templates/resource_download.html:46 +msgid "" +"OpenSSH is a program used to connect remote applications in the Windows " +"Remote Application Publisher" +msgstr "" +"OpenSSH được sử dụng trong máy chủ ứng dụng từ xa Windows để kết nối các ứng" +" dụng từ xa" + +#: templates/resource_download.html:53 +msgid "Offline video player" +msgstr "Trình phát video ngoại tuyến" + +#: terminal/api/applet/applet.py:52 terminal/api/applet/applet.py:55 +#: terminal/api/virtualapp/virtualapp.py:43 +#: terminal/api/virtualapp/virtualapp.py:46 +msgid "Invalid zip file" +msgstr "Tệp zip không hợp lệ" + +#: terminal/api/applet/applet.py:74 +msgid "This is enterprise edition applet" +msgstr "" +"Phiên bản doanh nghiệp của ứng dụng từ xa không thể sử dụng trong phiên bản " +"cộng đồng" + +#: terminal/api/applet/applet.py:91 +msgid "Applet not found in path: {}" +msgstr "Không tìm thấy ứng dụng từ xa trong đường dẫn: {}" + +#: terminal/api/component/endpoint.py:32 +msgid "Not found protocol query params" +msgstr "Không tìm thấy tham số truy vấn protocol" + +#: terminal/api/component/storage.py:31 +msgid "Deleting the default storage is not allowed" +msgstr "không cho phép xóa cấu hình lưu trữ mặc định" + +#: terminal/api/component/storage.py:36 +msgid "Cannot delete storage that is being used: {}" +msgstr "không thể xóa lưu trữ đang được sử dụng: {}" + +#: terminal/api/component/storage.py:77 terminal/api/component/storage.py:78 +msgid "Command storages" +msgstr "lệnh lưu trữ" + +#: terminal/api/component/storage.py:84 xpack/plugins/cloud/manager.py:119 +msgid "Invalid" +msgstr "không hợp lệ" + +#: terminal/api/component/storage.py:132 terminal/tasks.py:208 +msgid "Test failure: {}" +msgstr "kiểm tra thất bại: {}" + +#: terminal/api/component/storage.py:135 +msgid "Test successful" +msgstr "kiểm tra thành công" + +#: terminal/api/component/storage.py:137 +msgid "Test failure: Please check configuration" +msgstr "kiểm tra thất bại: vui lòng kiểm tra cấu hình" + +#: terminal/api/component/terminal.py:56 +msgid "Have online sessions" +msgstr "có phiên trực tuyến" + +#: terminal/api/session/session.py:50 +msgid "User %s %s session %s replay" +msgstr "người dùng %s %s đã ghi lại phiên %s" + +#: terminal/api/session/session.py:159 terminal/api/session/session.py:292 +#: terminal/models/session/replay.py:12 +msgid "Session replay" +msgstr "ghi lại phiên" + +#: terminal/api/session/session.py:334 +msgid "Session does not exist: {}" +msgstr "phiên không tồn tại: {}" + +#: terminal/api/session/session.py:337 +msgid "Session is finished or the protocol not supported" +msgstr "phiên đã hoàn thành hoặc giao thức không được hỗ trợ" + +#: terminal/api/session/session.py:350 +msgid "User does not have permission" +msgstr "người dùng không có quyền" + +#: terminal/api/session/sharing.py:29 +msgid "Secure session sharing settings is disabled" +msgstr "chưa mở chức năng chia sẻ phiên." + +#: terminal/apps.py:9 +msgid "App Terminals" +msgstr "Terminals" + +#: terminal/backends/command/models.py:19 +msgid "Input" +msgstr "Nhập vào" + +#: terminal/backends/command/models.py:20 terminal/serializers/command.py:73 +msgid "Output" +msgstr "Xuất ra" + +#: terminal/connect_methods.py:29 +msgid "SSH Client" +msgstr "Khách hàng SSH" + +#: terminal/connect_methods.py:30 +msgid "SSH Guide" +msgstr "Hướng dẫn SSH" + +#: terminal/connect_methods.py:31 +msgid "SFTP Client" +msgstr "Khách hàng SFTP" + +#: terminal/connect_methods.py:33 +msgid "DB Guide" +msgstr "Hướng dẫn kết nối DB" + +#: terminal/connect_methods.py:34 +msgid "DB Client" +msgstr "Khách hàng cơ sở dữ liệu" + +#: terminal/connect_methods.py:36 +msgid "Remote Desktop" +msgstr "Khách hàng Remote Desktop" + +#: terminal/connect_methods.py:37 +msgid "RDP Guide" +msgstr "Hướng dẫn kết nối RDP" + +#: terminal/connect_methods.py:39 +msgid "VNC Client" +msgstr "Khách hàng VNC" + +#: terminal/connect_methods.py:40 +msgid "VNC Guide" +msgstr "Hướng dẫn kết nối VNC" + +#: terminal/const.py:10 +msgid "Warning" +msgstr "Cảnh báo" + +#: terminal/const.py:12 +msgid "Review & Reject" +msgstr "Phê duyệt & Từ chối" + +#: terminal/const.py:13 +msgid "Review & Accept" +msgstr "Phê duyệt & Chấp nhận" + +#: terminal/const.py:14 +msgid "Review & Cancel" +msgstr "Phê duyệt & Hủy bỏ" + +#: terminal/const.py:45 +msgid "Critical" +msgstr "Nghiêm trọng" + +#: terminal/const.py:46 +msgid "High" +msgstr "khá cao" + +#: terminal/const.py:48 +msgid "Offline" +msgstr "ngoại tuyến" + +#: terminal/const.py:82 +msgid "Mismatch" +msgstr "không khớp" + +#: terminal/const.py:87 +msgid "Tunnel" +msgstr "hầm" + +#: terminal/const.py:93 +msgid "Read only" +msgstr "chỉ đọc" + +#: terminal/const.py:94 +msgid "Writable" +msgstr "đọc và ghi" + +#: terminal/const.py:98 +msgid "Kill session" +msgstr "chấm dứt phiên" + +#: terminal/const.py:99 +msgid "Lock session" +msgstr "khóa phiên" + +#: terminal/const.py:100 +msgid "Unlock session" +msgstr "mở khóa phiên" + +#: terminal/const.py:105 +msgid "Replay create failed" +msgstr "tạo video thất bại" + +#: terminal/const.py:106 +msgid "Replay upload failed" +msgstr "tải video lên thất bại" + +#: terminal/const.py:107 +msgid "Replay convert failed" +msgstr "chuyển mã video thất bại" + +#: terminal/const.py:108 +msgid "Replay unsupported" +msgstr "không hỗ trợ video" + +#: terminal/exceptions.py:8 +msgid "Bulk create not support" +msgstr "không hỗ trợ tạo hàng loạt" + +#: terminal/exceptions.py:13 +msgid "Storage is invalid" +msgstr "Lưu trữ không hợp lệ" + +#: terminal/models/applet/applet.py:32 +msgid "Enterprise" +msgstr "Phiên bản doanh nghiệp" + +#: terminal/models/applet/applet.py:35 +#: terminal/models/virtualapp/virtualapp.py:20 +msgid "Display name" +msgstr "Tên hiển thị" + +#: terminal/models/applet/applet.py:37 +#: terminal/models/virtualapp/virtualapp.py:22 +msgid "Author" +msgstr "Tác giả" + +#: terminal/models/applet/applet.py:39 terminal/serializers/applet.py:32 +msgid "Edition" +msgstr "Phiên bản" + +#: terminal/models/applet/applet.py:44 +msgid "Can concurrent" +msgstr "Có thể đồng thời" + +#: terminal/models/applet/applet.py:49 terminal/serializers/applet_host.py:194 +#: terminal/serializers/storage.py:193 +msgid "Hosts" +msgstr "Máy chủ" + +#: terminal/models/applet/applet.py:94 +#: terminal/models/virtualapp/virtualapp.py:66 +msgid "Applet pkg not valid, Missing file {}" +msgstr "Gói Applet không hợp lệ, thiếu tệp {}" + +#: terminal/models/applet/applet.py:113 +msgid "Load platform.yml failed: {}" +msgstr "Tải platform.yml thất bại: {}" + +#: terminal/models/applet/applet.py:116 +msgid "Only support custom platform" +msgstr "Chỉ hỗ trợ nền tảng tùy chỉnh" + +#: terminal/models/applet/applet.py:121 +msgid "Missing type in 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/host.py:138 +msgid "Hosting" +msgstr "Máy chủ chủ" + +#: terminal/models/applet/applet.py:379 +msgid "Applet Publication" +msgstr "Phát hành ứng dụng" + +#: terminal/models/applet/host.py:18 terminal/serializers/applet_host.py:81 +msgid "Deploy options" +msgstr "Tham số triển khai" + +#: terminal/models/applet/host.py:19 +msgid "Auto create accounts" +msgstr "Tự động tạo tài khoản" + +#: terminal/models/applet/host.py:20 +msgid "Accounts create amount" +msgstr "Số lượng tài khoản đã tạo" + +#: terminal/models/applet/host.py:21 +msgid "Inited" +msgstr "Đã khởi tạo" + +#: terminal/models/applet/host.py:22 +msgid "Date inited" +msgstr "Ngày khởi tạo" + +#: terminal/models/applet/host.py:23 +msgid "Date synced" +msgstr "Ngày đồng bộ" + +#: terminal/models/applet/host.py:28 +msgid "Using same account" +msgstr "Sử dụng tài khoản cùng tên" + +#: terminal/models/applet/host.py:139 +msgid "Initial" +msgstr "Khởi tạo" + +#: terminal/models/applet/host.py:148 +msgid "Applet host deployment" +msgstr "Triển khai ứng dụng" + +#: terminal/models/component/endpoint.py:16 +msgid "HTTPS port" +msgstr "Cổng HTTPS" + +#: terminal/models/component/endpoint.py:17 +msgid "HTTP port" +msgstr "Cổng HTTP" + +#: terminal/models/component/endpoint.py:18 +msgid "SSH port" +msgstr "Cổng SSH" + +#: terminal/models/component/endpoint.py:19 +msgid "RDP port" +msgstr "Cổng RDP" + +#: terminal/models/component/endpoint.py:20 +msgid "MySQL port" +msgstr "Cổng MySQL" + +#: terminal/models/component/endpoint.py:21 +msgid "MariaDB port" +msgstr "Cổng MariaDB" + +#: terminal/models/component/endpoint.py:22 +msgid "PostgreSQL port" +msgstr "Cổng PostgreSQL" + +#: terminal/models/component/endpoint.py:23 +msgid "Redis port" +msgstr "Cổng Redis" + +#: terminal/models/component/endpoint.py:24 +msgid "SQLServer port" +msgstr "Cổng SQL Server" + +#: terminal/models/component/endpoint.py:25 +msgid "Oracle port" +msgstr "Cổng Oracle" + +#: terminal/models/component/endpoint.py:26 +msgid "MongoDB port" +msgstr "Cổng MongoDB" + +#: terminal/models/component/endpoint.py:27 +msgid "VNC port" +msgstr "Cổng VNC" + +#: terminal/models/component/endpoint.py:35 +#: terminal/models/component/endpoint.py:115 +#: terminal/serializers/endpoint.py:62 terminal/serializers/storage.py:41 +#: terminal/serializers/storage.py:53 terminal/serializers/storage.py:83 +#: terminal/serializers/storage.py:93 terminal/serializers/storage.py:101 +msgid "Endpoint" +msgstr "Điểm cuối" + +#: terminal/models/component/endpoint.py:121 +msgid "Endpoint rule" +msgstr "Quy tắc điểm cuối" + +#: terminal/models/component/status.py:15 +msgid "Session Online" +msgstr "Phiên online" + +#: terminal/models/component/status.py:16 +msgid "CPU Load" +msgstr "Tải CPU" + +#: terminal/models/component/status.py:17 +msgid "Memory Used" +msgstr "Sử dụng bộ nhớ" + +#: terminal/models/component/status.py:18 +msgid "Disk Used" +msgstr "Sử dụng đĩa" + +#: terminal/models/component/status.py:19 +msgid "Connections" +msgstr "Số lượng kết nối" + +#: terminal/models/component/status.py:20 +msgid "Threads" +msgstr "Số lượng luồng" + +#: terminal/models/component/status.py:21 +msgid "Boot Time" +msgstr "Thời gian chạy" + +#: terminal/models/component/storage.py:144 +#: terminal/models/component/terminal.py:92 +msgid "Command storage" +msgstr "Lưu trữ lệnh" + +#: terminal/models/component/storage.py:212 +#: terminal/models/component/terminal.py:93 +msgid "Replay storage" +msgstr "Lưu trữ video" + +#: terminal/models/component/terminal.py:89 +msgid "type" +msgstr "Loại" + +#: terminal/models/component/terminal.py:94 +msgid "Application User" +msgstr "Người dùng ứng dụng" + +#: terminal/models/component/terminal.py:187 +msgid "Can view terminal config" +msgstr "Có thể xem cấu hình thiết bị đầu cuối" + +#: terminal/models/session/command.py:76 +msgid "Command record" +msgstr "Bản ghi lệnh" + +#: terminal/models/session/replay.py:14 +msgid "Can upload session replay" +msgstr "Có thể tải lên video phiên họp" + +#: terminal/models/session/replay.py:15 +msgid "Can download session replay" +msgstr "Có thể tải xuống video phiên họp" + +#: terminal/models/session/session.py:32 +msgid "Account ID" +msgstr "Tài khoản" + +#: terminal/models/session/session.py:34 +#: terminal/models/session/sharing.py:116 +msgid "Login from" +msgstr "Nguồn đăng nhập" + +#: terminal/models/session/session.py:39 +msgid "Replay" +msgstr "Phát lại" + +#: terminal/models/session/session.py:45 terminal/serializers/session.py:179 +msgid "Command amount" +msgstr "Số lượng lệnh" + +#: terminal/models/session/session.py:46 terminal/serializers/session.py:40 +msgid "Error reason" +msgstr "Nguyên nhân lỗi" + +#: terminal/models/session/session.py:47 +msgid "Replay size" +msgstr "Kích thước video" + +#: terminal/models/session/session.py:318 +msgid "Session record" +msgstr "Bản ghi phiên họp" + +#: terminal/models/session/session.py:320 +msgid "Can monitor session" +msgstr "Có thể giám sát phiên họp" + +#: terminal/models/session/session.py:321 +msgid "Can share session" +msgstr "Có thể chia sẻ phiên họp" + +#: terminal/models/session/session.py:322 +msgid "Can terminate session" +msgstr "Có thể kết thúc cuộc trò chuyện" + +#: terminal/models/session/session.py:323 +msgid "Can validate session action perm" +msgstr "Có thể xác thực quyền Action của cuộc trò chuyện" + +#: terminal/models/session/sharing.py:32 +msgid "Expired time (min)" +msgstr "Thời gian hết hạn (phút)" + +#: terminal/models/session/sharing.py:36 terminal/serializers/sharing.py:20 +#: terminal/serializers/sharing.py:52 +msgid "Action permission" +msgstr "Quyền thao tác" + +#: terminal/models/session/sharing.py:38 +msgid "Origin" +msgstr "Nguồn" + +#: terminal/models/session/sharing.py:42 terminal/models/session/sharing.py:98 +#: terminal/notifications.py:279 +msgid "Session sharing" +msgstr "Chia sẻ cuộc trò chuyện" + +#: terminal/models/session/sharing.py:44 +msgid "Can add super session sharing" +msgstr "Có thể tạo chia sẻ cuộc trò chuyện siêu cấp" + +#: terminal/models/session/sharing.py:83 +msgid "Link not active" +msgstr "Liên kết không hợp lệ" + +#: terminal/models/session/sharing.py:85 +msgid "Link expired" +msgstr "Liên kết đã hết hạn" + +#: terminal/models/session/sharing.py:87 +msgid "User not allowed to join" +msgstr "Người dùng này không có quyền tham gia cuộc trò chuyện" + +#: terminal/models/session/sharing.py:102 terminal/serializers/sharing.py:71 +msgid "Joiner" +msgstr "Người tham gia" + +#: terminal/models/session/sharing.py:105 +msgid "Date joined" +msgstr "Ngày tham gia" + +#: terminal/models/session/sharing.py:108 +msgid "Date left" +msgstr "Ngày kết thúc" + +#: terminal/models/session/sharing.py:131 +msgid "Session join record" +msgstr "Ghi chép tham gia cuộc trò chuyện" + +#: terminal/models/session/sharing.py:147 +msgid "Invalid verification code" +msgstr "Mã xác nhận không chính xác" + +#: terminal/models/session/sharing.py:154 +msgid "You have already joined this session" +msgstr "Bạn đã tham gia vào cuộc hội thoại này" + +#: terminal/models/virtualapp/provider.py:11 +msgid "Hostname" +msgstr "Tên máy chủ" + +#: terminal/models/virtualapp/provider.py:23 +#: terminal/models/virtualapp/virtualapp.py:94 +#: terminal/serializers/virtualapp.py:35 +msgid "App Provider" +msgstr "Nhà cung cấp ứng dụng" + +#: terminal/models/virtualapp/virtualapp.py:32 +msgid "Providers" +msgstr "Nhà cung cấp" + +#: terminal/models/virtualapp/virtualapp.py:102 +msgid "Virtual app publication" +msgstr "Phát hành ứng dụng ảo" + +#: terminal/notifications.py:26 +msgid "Sessions" +msgstr "Cuộc hội thoại" + +#: terminal/notifications.py:73 +msgid "Command warning" +msgstr "Cảnh báo lệnh" + +#: terminal/notifications.py:128 terminal/notifications.py:183 +msgid "Command reject" +msgstr "Từ chối lệnh" + +#: terminal/notifications.py:158 terminal/notifications.py:218 +msgid "Level" +msgstr "Cấp độ" + +#: terminal/notifications.py:242 +msgid "Command and replay storage" +msgstr "Storage" + +#: terminal/notifications.py:258 terminal/tasks.py:212 +#: xpack/plugins/cloud/api.py:182 +#: xpack/plugins/cloud/serializers/account.py:139 +#: xpack/plugins/cloud/serializers/account.py:141 +msgid "Test failure: Account invalid" +msgstr "Kiểm tra thất bại: Tài khoản không hợp lệ" + +#: terminal/notifications.py:268 +#: terminal/templates/terminal/_msg_check_command_replay_storage_connectivity.html:4 +msgid "Invalid storage" +msgstr "Lưu trữ không hợp lệ" + +#: terminal/serializers/applet.py:29 terminal/serializers/virtualapp.py:16 +msgid "Icon" +msgstr "Biểu tượng" + +#: terminal/serializers/applet_host.py:24 +msgid "Per Device (Device number limit)" +msgstr "Mỗi người dùng (giới hạn số lượng thiết bị)" + +#: terminal/serializers/applet_host.py:25 +msgid "Per User (User number limit)" +msgstr "Mỗi thiết bị (giới hạn số lượng người dùng)" + +#: terminal/serializers/applet_host.py:37 +msgid "Core API" +msgstr "Địa chỉ dịch vụ Core" + +#: terminal/serializers/applet_host.py:38 +msgid "" +" \n" +" Tips: The application release machine communicates with the Core service. \n" +" If the release machine and the Core service are on the same network segment, \n" +" it is recommended to fill in the intranet address, otherwise fill in the current site URL \n" +"
\n" +" eg: https://172.16.10.110 or https://dev.jumpserver.com\n" +" " +msgstr "" +"Gợi ý: Ứng dụng phát hành và dịch vụ Core giao tiếp với nhau. Nếu phát hành " +"và dịch vụ Core nằm trong cùng một mạng con, nên điền địa chỉ nội bộ; nếu " +"không, vui lòng điền URL của trang hiện tại.
Ví dụ: " +"https://172.16.10.110 hoặc https://dev.jumpserver.com" + +#: terminal/serializers/applet_host.py:46 terminal/serializers/storage.py:207 +msgid "Ignore Certificate Verification" +msgstr "Bỏ qua xác thực chứng chỉ" + +#: terminal/serializers/applet_host.py:48 +msgid "Existing RDS license" +msgstr "Đã có giấy phép RDS" + +#: terminal/serializers/applet_host.py:50 +msgid "" +"If not exist, the RDS will be in trial mode, and the trial period is 120 " +"days. Detail" +msgstr "" +"Nếu không có, RDS sẽ ở chế độ dùng thử, thời gian thử nghiệm là 120 ngày. Chi tiết" + +#: terminal/serializers/applet_host.py:55 +msgid "RDS License Server" +msgstr "Máy chủ cấp phép RDS" + +#: terminal/serializers/applet_host.py:57 +msgid "RDS Licensing Mode" +msgstr "Chế độ cấp phép RDS" + +#: terminal/serializers/applet_host.py:60 +msgid "RDS Single Session Per User" +msgstr "RDS người dùng đơn, phiên đơn" + +#: terminal/serializers/applet_host.py:61 +msgid "" +"Tips: A RDS user can have only one session at a time. If set, when next " +"login connected, previous session will be disconnected." +msgstr "" +"Gợi ý: RDS người dùng chỉ có thể có một phiên tại một thời điểm. Nếu đã " +"thiết lập, khi đăng nhập lần sau, phiên trước đó sẽ bị ngắt kết nối." + +#: terminal/serializers/applet_host.py:65 +msgid "RDS Max Disconnection Time (ms)" +msgstr "Thời gian ngắt kết nối tối đa của RDS (miligiây)" + +#: terminal/serializers/applet_host.py:67 +msgid "" +"Tips: Set the maximum duration for keeping a disconnected session active on " +"the server (log off the session after 60000 milliseconds)." +msgstr "" +"Gợi ý: Thiết lập thời gian tối đa cho một phiên đã ngắt kết nối vẫn duy trì " +"hoạt động trên máy chủ (sẽ tự động đăng xuất phiên sau 60000 miligiây)" + +#: terminal/serializers/applet_host.py:72 +msgid "RDS Remote App Logoff Time Limit (ms)" +msgstr "Giới hạn thời gian đăng xuất phiên RemoteApp của RDS (miligiây)" + +#: terminal/serializers/applet_host.py:74 +msgid "" +"Tips: Set the logoff time for RemoteApp sessions after closing all RemoteApp" +" programs (0 milliseconds, log off the session immediately)." +msgstr "" +"Gợi ý: Thiết lập thời gian đăng xuất cho phiên RemoteAPP sau khi đã đóng tất" +" cả chương trình RemoteApp (0 miligiây, ngay lập tức đăng xuất phiên)" + +#: terminal/serializers/applet_host.py:83 terminal/serializers/terminal.py:47 +#: terminal/serializers/virtualapp_provider.py:13 +msgid "Load status" +msgstr "Tình trạng tải" + +#: terminal/serializers/applet_host.py:97 +msgid "" +"These accounts are used to connect to the published application, the account" +" is now divided into two types, one is dedicated to each account, each user " +"has a private account, the other is public, when the application does not " +"support multiple open and the special has been used, the public account will" +" be used to connect" +msgstr "" +"Những tài khoản này dùng để kết nối với các ứng dụng đã phát hành, tài khoản" +" hiện được chia thành hai loại:
Một loại là riêng tư, mỗi người dùng " +"có một tài khoản riêng. Loại còn lại là công cộng, sẽ sử dụng tài khoản công" +" cộng để kết nối khi ứng dụng không hỗ trợ đa phiên và tài khoản riêng đã " +"được sử dụng;
Lưu ý: Nếu không bật chế độ tự động tạo tài khoản, máy " +"phát hành hiện tại chỉ có thể được tài sản có nhãn chỉ định phân bổ, mặc " +"định sẽ không được đưa vào bể phân bổ, và cần bảo trì tài khoản thủ công." + +#: terminal/serializers/applet_host.py:104 +msgid "The number of public accounts created automatically" +msgstr "Số lượng tài khoản công cộng tự động tạo." + +#: terminal/serializers/applet_host.py:107 +msgid "" +"Connect to the host using the same account first. For security reasons, " +"please set the configuration item CACHE_LOGIN_PASSWORD_ENABLED=true and " +"restart the service to enable it." +msgstr "" +"Ưu tiên sử dụng tài khoản cùng tên để kết nối với máy phát hành. Để đảm bảo " +"an toàn, cần cấu hình trong tệp cấu hình mở " +"CACHE_LOGIN_PASSWORD_ENABLED=true, sau khi chỉnh sửa, hãy khởi động lại dịch" +" vụ." + +#: terminal/serializers/applet_host.py:164 +msgid "Install applets" +msgstr "Cài đặt ứng dụng" + +#: terminal/serializers/applet_host.py:194 +msgid "Host ID" +msgstr "ID máy chủ" + +#: terminal/serializers/applet_host.py:195 +msgid "Applet ID" +msgstr "ID ứng dụng từ xa" + +#: terminal/serializers/command.py:22 +#: terminal/templates/terminal/_msg_command_warning.html:10 +msgid "Risk level" +msgstr "Mức độ rủi ro" + +#: terminal/serializers/command.py:41 +msgid "Command Filter ACL" +msgstr "Bộ lọc lệnh" + +#: terminal/serializers/command.py:44 +msgid "Command Group" +msgstr "Nhóm lệnh" + +#: terminal/serializers/command.py:55 +msgid "Invalid command filter ACL id" +msgstr "ID bộ lọc lệnh không hợp lệ" + +#: terminal/serializers/command.py:59 +msgid "Invalid command group id" +msgstr "ID nhóm lệnh không hợp lệ" + +#: terminal/serializers/command.py:63 +msgid "Invalid session id" +msgstr "ID phiên không hợp lệ" + +#: terminal/serializers/command.py:74 +msgid "Timestamp" +msgstr "Dấu thời gian" + +#: terminal/serializers/endpoint.py:26 +msgid "" +"The host address accessed when connecting to assets, if it is empty, the " +"access address of the current browser will be used (the default endpoint " +"does not allow modification of the host)" +msgstr "" +"Địa chỉ máy chủ truy cập khi kết nối với tài sản, nếu để trống sẽ sử dụng " +"địa chỉ truy cập của trình duyệt hiện tại (điểm cuối mặc định không cho phép" +" sửa đổi máy chủ)" + +#: terminal/serializers/endpoint.py:53 +msgid "" +"The assets within this IP range or Host, the following endpoint will be used" +" for the connection" +msgstr "" +"Phạm vi IP này hoặc các tài sản trong máy chủ sẽ được kết nối thông qua điểm" +" cuối sau" + +#: terminal/serializers/endpoint.py:54 +msgid "" +"If asset IP addresses under different endpoints conflict, use asset labels" +msgstr "" +"Nếu có xung đột IP của tài sản khác nhau ở các điểm cuối, hãy sử dụng nhãn " +"tài sản để thực hiện" + +#: terminal/serializers/session.py:35 terminal/serializers/session.py:63 +msgid "Can replay" +msgstr "Có thể phát lại hay không." + +#: terminal/serializers/session.py:36 terminal/serializers/session.py:64 +msgid "Can join" +msgstr "Có thể thêm vào" + +#: terminal/serializers/session.py:37 terminal/serializers/session.py:67 +msgid "Can terminate" +msgstr "Có thể ngắt" + +#: terminal/serializers/session.py:59 users/serializers/profile.py:189 +msgid "User ID" +msgstr "ID người dùng" + +#: terminal/serializers/session.py:60 +msgid "Asset ID" +msgstr "ID tài sản" + +#: terminal/serializers/session.py:61 +msgid "Login from display" +msgstr "Tên nguồn đăng nhập" + +#: terminal/serializers/session.py:68 +msgid "Terminal display" +msgstr "Hiển thị thiết bị" + +#: terminal/serializers/session.py:159 +msgid "No asset or invalid asset" +msgstr "Không có tài sản hoặc tài sản chưa được kích hoạt" + +#: terminal/serializers/storage.py:23 +msgid "Endpoint invalid: remove path `{}`" +msgstr "Điểm cuối không hợp lệ: Xóa đường dẫn `{}`" + +#: terminal/serializers/storage.py:29 +msgid "Bucket" +msgstr "Tên thùng" + +#: terminal/serializers/storage.py:112 +msgid "Container name" +msgstr "Tên container" + +#: terminal/serializers/storage.py:115 +msgid "Account key" +msgstr "Khóa tài khoản" + +#: terminal/serializers/storage.py:118 +msgid "Endpoint suffix" +msgstr "Đuôi điểm cuối" + +#: terminal/serializers/storage.py:129 +msgid "HOST" +msgstr "Máy chủ" + +#: terminal/serializers/storage.py:152 +msgid "SFTP Root" +msgstr "Đường dẫn gốc SFTP" + +#: terminal/serializers/storage.py:173 +msgid "The address cannot contain the special character `#`" +msgstr "Địa chỉ không thể chứa ký tự đặc biệt `#`" + +#: terminal/serializers/storage.py:175 +msgid "The address format is incorrect" +msgstr "Định dạng địa chỉ không chính xác" + +#: terminal/serializers/storage.py:182 +msgid "Host invalid" +msgstr "Máy chủ không hợp lệ" + +#: terminal/serializers/storage.py:185 +msgid "Port invalid" +msgstr "Cổng không hợp lệ" + +#: terminal/serializers/storage.py:194 +msgid "" +"If there are multiple hosts, use a comma (,) to separate them.
(For " +"example: http://www.jumpserver.a.com:9100, http://www.jumpserver.b.com:9100)" +msgstr "" +"Nếu có nhiều máy chủ, hãy phân tách chúng bằng dấu phẩy (,) .
(Ví dụ: " +"http://www.jumpserver.a.com:9100, http://www.jumpserver.b.com:9100)" + +#: terminal/serializers/storage.py:199 +msgid "Index by date" +msgstr "Tạo chỉ mục theo ngày" + +#: terminal/serializers/storage.py:200 +msgid "Whether to create an index by date" +msgstr "Có tạo chỉ mục theo ngày một cách động không" + +#: terminal/serializers/storage.py:203 +msgid "Index" +msgstr "Chỉ mục" + +#: terminal/serializers/storage.py:205 +msgid "Doc type" +msgstr "Loại tài liệu" + +#: terminal/serializers/storage.py:257 +msgid "Store locally" +msgstr "Lưu trữ cục bộ" + +#: terminal/serializers/storage.py:258 +msgid "Do not save" +msgstr "Không lưu lại" + +#: terminal/serializers/storage.py:273 +msgid "" +"set as the default storage, will make new Component use the current storage " +"by default, without affecting existing Component" +msgstr "" +"Sau khi được đặt thành lưu trữ mặc định, các thành phần mới sẽ tự động sử " +"dụng lưu trữ hiện tại mà không ảnh hưởng đến các thành phần đã có" + +#: terminal/serializers/task.py:9 +msgid "Session id" +msgstr "ID phiên" + +#: terminal/serializers/terminal.py:42 +msgid "Online sessions" +msgstr "Phiên trực tuyến" + +#: terminal/serializers/terminal.py:43 +msgid "Is alive" +msgstr "Is alive" + +#: terminal/serializers/terminal.py:49 +msgid "Stat" +msgstr "Trạng thái" + +#: terminal/serializers/terminal.py:83 terminal/serializers/terminal.py:91 +msgid "Not found" +msgstr "Không tìm thấy" + +#: terminal/serializers/virtualapp_provider.py:26 +msgid "Container ID" +msgstr "ID container" + +#: terminal/serializers/virtualapp_provider.py:27 +msgid "Container Image" +msgstr "Hình ảnh container" + +#: terminal/serializers/virtualapp_provider.py:28 +msgid "Container Name" +msgstr "Tên container" + +#: terminal/serializers/virtualapp_provider.py:29 +msgid "Container Status" +msgstr "Trạng thái container" + +#: terminal/serializers/virtualapp_provider.py:30 +msgid "Container Ports" +msgstr "Cổng container" + +#: terminal/session_lifecycle.py:30 +msgid "Connect to asset %s success" +msgstr "Kết nối tài sản %s thành công" + +#: terminal/session_lifecycle.py:38 +msgid "Connect to asset %s finished: %s" +msgstr "Kết thúc kết nối tài sản %s: %s" + +#: terminal/session_lifecycle.py:48 +msgid "User %s create share link" +msgstr "Người dùng %s tạo liên kết chia sẻ" + +#: terminal/session_lifecycle.py:57 +msgid "User %s join session" +msgstr "Người dùng %s tham gia phiên họp" + +#: terminal/session_lifecycle.py:69 +msgid "User %s leave session" +msgstr "Người dùng %s rời phiên họp" + +#: terminal/session_lifecycle.py:81 +msgid "User %s join to monitor session" +msgstr "Người dùng %s giám sát phiên họp" + +#: terminal/session_lifecycle.py:93 +msgid "User %s exit to monitor session" +msgstr "Người dùng %s rời giám sát phiên họp" + +#: terminal/session_lifecycle.py:105 +msgid "Replay start to convert" +msgstr "Quá trình chuyển đổi video bắt đầu" + +#: terminal/session_lifecycle.py:113 +msgid "Replay successfully converted to MP4 format" +msgstr "Video đã chuyển đổi thành công sang định dạng MP4" + +#: terminal/session_lifecycle.py:121 +msgid "Replay failed to convert to MP4 format: %s" +msgstr "Chuyển đổi video sang định dạng MP4 thất bại: %s" + +#: terminal/session_lifecycle.py:129 +msgid "Replay start to upload" +msgstr "Video bắt đầu được tải lên" + +#: terminal/session_lifecycle.py:137 +msgid "Replay successfully uploaded" +msgstr "Video đã tải lên thành công" + +#: terminal/session_lifecycle.py:145 +msgid "Replay failed to upload: %s" +msgstr "Tải video thất bại: %s" + +#: terminal/session_lifecycle.py:152 +msgid "connect failed" +msgstr "Kết nối thất bại" + +#: terminal/session_lifecycle.py:153 +msgid "connection disconnect" +msgstr "Kết nối đã bị ngắt" + +#: terminal/session_lifecycle.py:154 +msgid "user closed" +msgstr "Người dùng đã đóng" + +#: terminal/session_lifecycle.py:155 +msgid "idle disconnect" +msgstr "Ngắt kết nối do không hoạt động" + +#: terminal/session_lifecycle.py:156 +msgid "admin terminated" +msgstr "Quản trị viên đã kết thúc kết nối" + +#: terminal/session_lifecycle.py:157 +msgid "maximum session time has been reached" +msgstr "Vượt quá thời gian kết nối tối đa của phiên" + +#: terminal/session_lifecycle.py:158 +msgid "permission has expired" +msgstr "Quyền truy cập đã hết hạn" + +#: terminal/session_lifecycle.py:159 +msgid "storage is null" +msgstr "Lưu trữ trống" + +#: terminal/tasks.py:32 +msgid "Periodic delete terminal status" +msgstr "Dọn dẹp trạng thái thiết bị định kỳ" + +#: terminal/tasks.py:43 +msgid "Clean orphan session" +msgstr "Xóa phiên làm việc ngoại tuyến" + +#: terminal/tasks.py:45 +msgid "" +"Check every 10 minutes for asset connection sessions that have been inactive for 3 \n" +" minutes and mark these sessions as completed" +msgstr "" +"Mỗi 10 phút kiểm tra các phiên kết nối của tài sản không hoạt động trong 3 " +"phút, đánh dấu những phiên này là đã hoàn thành" + +#: terminal/tasks.py:68 +msgid "Upload session replay to external storage" +msgstr "Tải phiên video lên lưu trữ bên ngoài" + +#: terminal/tasks.py:70 terminal/tasks.py:104 +msgid "" +"If SERVER_REPLAY_STORAGE is configured in the config.txt, session commands and \n" +" recordings will be uploaded to external storage" +msgstr "" +"Nếu đã thiết lập SERVER_REPLAY_STORAGE, các tệp được tải lên thông qua quản " +"lý tệp sẽ được đồng bộ hóa với bộ nhớ bên ngoài." + +#: terminal/tasks.py:102 +msgid "Upload session replay part file to external storage" +msgstr "Một phần tệp của phiên sẽ được tải lên bộ nhớ bên ngoài." + +#: terminal/tasks.py:123 +msgid "Run applet host deployment" +msgstr "Triển khai máy ứng dụng." + +#: terminal/tasks.py:126 +msgid "" +"When deploying from the remote application publisher details page, and the 'Deploy' \n" +" button is clicked, this task will be executed" +msgstr "" +"Triển khai máy phát hành, khi nhấp vào triển khai, thực hiện nhiệm vụ này." + +#: terminal/tasks.py:137 +msgid "Install applet" +msgstr "Cài đặt ứng dụng." + +#: terminal/tasks.py:140 +msgid "" +"When the 'Deploy' button is clicked in the 'Remote Application' section of the remote \n" +" application publisher details page, this task will be executed" +msgstr "" +"Khi xem chi tiết máy phát hành ứng dụng từ xa - ứng dụng từ xa, khi nhấp vào" +" triển khai, thực hiện nhiệm vụ này." + +#: terminal/tasks.py:152 +msgid "Uninstall applet" +msgstr "Gỡ cài đặt ứng dụng." + +#: terminal/tasks.py:155 +msgid "" +"When the 'Uninstall' button is clicked in the 'Remote Application' section of the \n" +" remote application publisher details page, this task will be executed" +msgstr "" +"Khi xem chi tiết máy phát hành ứng dụng từ xa - ứng dụng từ xa, khi nhấp vào" +" gỡ cài đặt, thực hiện nhiệm vụ này." + +#: terminal/tasks.py:167 +msgid "Generate applet host accounts" +msgstr "Thu thập tài khoản trên ứng dụng từ xa." + +#: terminal/tasks.py:170 +msgid "" +"When a remote publishing server is created and an account needs to be created \n" +" automatically, this task will be executed" +msgstr "" +"Khi cần tự động tạo tài khoản sau khi tạo máy phát hành từ xa, thực hiện " +"nhiệm vụ này." + +#: terminal/tasks.py:184 +msgid "Check command replay storage connectivity" +msgstr "Kiểm tra khả năng kết nối của lệnh và bộ nhớ ghi hình." + +#: terminal/tasks.py:186 +msgid "" +"Check every day at midnight whether the external storage for commands and recordings \n" +" is accessible. If it is not accessible, send a notification to the recipients specified \n" +" in 'System Settings - Notifications - Subscription - Storage - Connectivity'" +msgstr "" +"Mỗi ngày vào lúc 0 giờ kiểm tra khả năng kết nối của bộ nhớ lệnh và ghi hình" +" bên ngoài, nếu không thể kết nối thì gửi đến: Cài đặt hệ thống - Cài đặt " +"thông báo - Đối tượng nhận trong cài đặt bộ nhớ lệnh và ghi hình." + +#: terminal/templates/terminal/_msg_command_alert.html:10 +msgid "view" +msgstr "Xem." + +#: tickets/api/ticket.py:88 tickets/models/ticket/general.py:289 +msgid "Applicant" +msgstr "Người nộp đơn." + +#: tickets/apps.py:7 +msgid "App Tickets" +msgstr "Tickets" + +#: tickets/const.py:10 +msgid "Apply for asset" +msgstr "Tài sản yêu cầu." + +#: tickets/const.py:18 tickets/const.py:25 tickets/const.py:43 +msgid "Open" +msgstr "Mở" + +#: tickets/const.py:20 tickets/const.py:32 +msgid "Approved" +msgstr "Đã đồng ý" + +#: tickets/const.py:21 tickets/const.py:33 +msgid "Rejected" +msgstr "Đã từ chối" + +#: tickets/const.py:31 tickets/const.py:38 +msgid "Closed" +msgstr "Đóng" + +#: tickets/const.py:50 +msgid "One level" +msgstr "Cấp 1" + +#: tickets/const.py:51 +msgid "Two level" +msgstr "Cấp 2" + +#: tickets/const.py:55 +msgid "All assets" +msgstr "Tất cả tài sản" + +#: tickets/const.py:56 +msgid "Permed assets" +msgstr "Tài sản được ủy quyền" + +#: tickets/const.py:57 +msgid "Permed valid assets" +msgstr "Tài sản được ủy quyền có hiệu lực" + +#: tickets/errors.py:9 +msgid "Ticket already closed" +msgstr "Phiếu công việc đã đóng" + +#: tickets/handlers/apply_asset.py:39 +msgid "" +"Created by the ticket ticket title: {} ticket applicant: {} ticket " +"processor: {} ticket ID: {}" +msgstr "" +"Tạo bằng phiếu công việc, Tiêu đề phiếu công việc: {}, Người nộp phiếu công " +"việc: {}, Người xử lý phiếu công việc: {}, ID phiếu công việc: {}" + +#: tickets/handlers/base.py:84 +msgid "Change field" +msgstr "Trường thay đổi" + +#: tickets/handlers/base.py:84 +msgid "Before change" +msgstr "Trước khi thay đổi" + +#: tickets/handlers/base.py:84 +msgid "After change" +msgstr "Sau khi thay đổi" + +#: tickets/handlers/base.py:96 +msgid "{} {} the ticket" +msgstr "{} {} Phiếu công việc" + +#: tickets/models/comment.py:14 +msgid "common" +msgstr "Tên hiển thị người dùng thường gặp" + +#: tickets/models/comment.py:23 +msgid "User display name" +msgstr "Nội dung" + +#: tickets/models/comment.py:24 +msgid "Body" +msgstr "Cấp độ phê duyệt" + +#: tickets/models/flow.py:21 tickets/models/flow.py:48 +#: tickets/models/ticket/general.py:45 +msgid "Approve level" +msgstr "Thông tin phê duyệt công việc" + +#: tickets/models/flow.py:26 +msgid "Ticket flow approval rule" +msgstr "Quy trình công việc" + +#: tickets/models/flow.py:53 +msgid "Ticket flow" +msgstr "Phiên công việc" + +#: tickets/models/relation.py:12 +msgid "Ticket session relation" +msgstr "Tên quy tắc ủy quyền" + +#: tickets/models/ticket/apply_application.py:10 +#: tickets/models/ticket/apply_asset.py:14 +msgid "Permission name" +msgstr "Ứng dụng yêu cầu" + +#: tickets/models/ticket/apply_application.py:19 +msgid "Apply applications" +msgstr "Người dùng hệ thống đã yêu cầu" + +#: tickets/models/ticket/apply_application.py:22 +msgid "Apply system users" +msgstr "Tài sản hoặc nút ít nhất chọn một mục" + +#: tickets/models/ticket/apply_asset.py:10 +#: tickets/serializers/ticket/apply_asset.py:14 +msgid "Select at least one asset or node" +msgstr "Tài khoản yêu cầu" + +#: tickets/models/ticket/apply_asset.py:18 +msgid "Apply accounts" +msgstr "Tài sản yêu cầu" + +#: tickets/models/ticket/apply_asset.py:29 +msgid "Apply Asset Ticket" +msgstr "Người dùng đang chạy" + +#: tickets/models/ticket/command_confirm.py:10 +msgid "Run user" +msgstr "Tài sản đang chạy." + +#: tickets/models/ticket/command_confirm.py:12 +msgid "Run asset" +msgstr "Tài sản đang chạy" + +#: tickets/models/ticket/command_confirm.py:13 +msgid "Run command" +msgstr "Lệnh đang chạy" + +#: tickets/models/ticket/command_confirm.py:20 +msgid "Command filter acl" +msgstr "Bộ lọc lệnh" + +#: tickets/models/ticket/command_confirm.py:26 +msgid "Apply Command Ticket" +msgstr "Phiếu kiểm tra lệnh" + +#: tickets/models/ticket/general.py:80 +msgid "Ticket step" +msgstr "Bước của phiếu công việc" + +#: tickets/models/ticket/general.py:98 +msgid "Ticket assignee" +msgstr "Người tiếp nhận phiếu công việc" + +#: tickets/models/ticket/general.py:273 +msgid "Title" +msgstr "Tiêu đề" + +#: tickets/models/ticket/general.py:293 +msgid "TicketFlow" +msgstr "Quy trình phiếu công việc" + +#: tickets/models/ticket/general.py:296 +msgid "Approval step" +msgstr "Bước phê duyệt" + +#: tickets/models/ticket/general.py:299 +msgid "Relation snapshot" +msgstr "Ảnh chụp phiếu công việc" + +#: tickets/models/ticket/general.py:419 +msgid "Please try again" +msgstr "Vui lòng thử lại" + +#: tickets/models/ticket/general.py:498 +msgid "Super ticket" +msgstr "Phiếu công việc đặc biệt" + +#: tickets/models/ticket/login_asset_confirm.py:13 +msgid "Login user" +msgstr "Người dùng đăng nhập" + +#: tickets/models/ticket/login_asset_confirm.py:16 +msgid "Login asset" +msgstr "Tài sản đăng nhập" + +#: tickets/models/ticket/login_asset_confirm.py:19 +msgid "Login account" +msgstr "Tài khoản đăng nhập" + +#: tickets/models/ticket/login_asset_confirm.py:31 +msgid "Apply Login Asset Ticket" +msgstr "Phiếu kiểm tra đăng nhập tài sản" + +#: tickets/models/ticket/login_confirm.py:19 +msgid "Apply Login Ticket" +msgstr "Người dùng đăng nhập xác nhận công việc" + +#: tickets/notifications.py:74 +msgid "Ticket basic info" +msgstr "Thông tin cơ bản về công việc" + +#: tickets/notifications.py:75 +msgid "Ticket applied info" +msgstr "Thông tin đơn xin công việc" + +#: tickets/notifications.py:116 +msgid "Your has a new ticket, applicant - {}" +msgstr "Bạn có một công việc mới, người xin - {}" + +#: tickets/notifications.py:120 +msgid "{}: New Ticket - {} ({})" +msgstr "Công việc mới - {} ({})" + +#: tickets/notifications.py:160 +msgid "Your ticket has been processed, processor - {}" +msgstr "Công việc của bạn đã được xử lý, người xử lý - {}" + +#: tickets/notifications.py:164 +msgid "Ticket has processed - {} ({})" +msgstr "Công việc của bạn đã được xử lý, người xử lý - {} ({})" + +#: tickets/serializers/flow.py:45 +msgid "The current organization type already exists" +msgstr "Tổ chức hiện tại đã tồn tại loại này" + +#: tickets/serializers/super_ticket.py:15 +msgid "Processor" +msgstr "Người xử lý" + +#: tickets/serializers/ticket/apply_asset.py:16 +msgid "Support fuzzy search, and display up to 10 items" +msgstr "Hỗ trợ tìm kiếm mơ hồ, hiển thị tối đa 10 mục" + +#: tickets/serializers/ticket/apply_asset.py:22 +msgid "Apply assets" +msgstr "Xin tài sản" + +#: tickets/serializers/ticket/apply_asset.py:26 +msgid "Apply nodes" +msgstr "Xin nút" + +#: tickets/serializers/ticket/apply_asset.py:28 +msgid "Apply actions" +msgstr "Xin Action" + +#: tickets/serializers/ticket/common.py:15 +#: tickets/serializers/ticket/common.py:74 +msgid "Created by ticket ({}-{})" +msgstr "Tạo công việc thông qua ({}-{})" + +#: tickets/serializers/ticket/common.py:67 +msgid "The expiration date should be greater than the start date" +msgstr "Thời gian hết hạn phải lớn hơn thời gian bắt đầu" + +#: tickets/serializers/ticket/common.py:89 +msgid "Permission named `{}` already exists" +msgstr "Tên ủy quyền `{}` đã tồn tại" + +#: tickets/serializers/ticket/ticket.py:90 +msgid "The ticket flow `{}` does not exist" +msgstr "Quy trình công việc `{}` không tồn tại" + +#: tickets/templates/tickets/_msg_ticket.html:21 +msgid "View details" +msgstr "Xem chi tiết" + +#: tickets/templates/tickets/_msg_ticket.html:26 +msgid "Direct approval" +msgstr "Phê duyệt trực tiếp" + +#: tickets/templates/tickets/approve_check_password.html:11 +msgid "Ticket information" +msgstr "Thông tin công việc" + +#: tickets/templates/tickets/approve_check_password.html:28 +#: tickets/views/approve.py:43 tickets/views/approve.py:80 +msgid "Ticket approval" +msgstr "Phê duyệt công việc" + +#: tickets/templates/tickets/approve_check_password.html:43 +msgid "Approval" +msgstr "Đồng ý" + +#: tickets/views/approve.py:44 +msgid "" +"This ticket does not exist, the process has ended, or this link has expired" +msgstr "" +"Công việc không tồn tại, hoặc quy trình công việc đã kết thúc, hoặc liên kết" +" này đã hết hạn" + +#: tickets/views/approve.py:72 +msgid "Click the button below to approve or reject" +msgstr "Nhấp vào nút bên dưới để đồng ý hoặc từ chối" + +#: tickets/views/approve.py:81 +msgid "After successful authentication, this ticket can be approved directly" +msgstr "Sau khi xác thực thành công, công việc có thể được phê duyệt ngay" + +#: tickets/views/approve.py:105 +msgid "Illegal approval action" +msgstr "Hành động phê duyệt không hợp lệ" + +#: tickets/views/approve.py:119 +msgid "This user is not authorized to approve this ticket" +msgstr "Người dùng này không có quyền phê duyệt công việc này" + +#: users/api/user.py:63 +msgid "Cannot delete the admin user. Please disable it instead." +msgstr "Không thể xóa người dùng quản lý. Vui lòng vô hiệu hóa họ." + +#: users/api/user.py:161 +msgid "Can not invite self" +msgstr "Không thể mời chính mình" + +#: users/api/user.py:214 +msgid "Could not reset self otp, use profile reset instead" +msgstr "" +"Không thể đặt lại xác thực đa yếu tố (MFA) trên trang này, vui lòng đến " +"trang thông tin cá nhân để đặt lại." + +#: users/apps.py:9 +msgid "App Users" +msgstr "Users" + +#: users/const.py:10 +msgid "System administrator" +msgstr "Quản trị hệ thống" + +#: users/const.py:11 +msgid "System auditor" +msgstr "Nhân viên kiểm toán hệ thống" + +#: users/const.py:12 +msgid "Organization administrator" +msgstr "Quản trị tổ chức" + +#: users/const.py:13 +msgid "Organization auditor" +msgstr "Nhân viên kiểm toán tổ chức" + +#: users/const.py:18 +msgid "Reset link will be generated and sent to the user" +msgstr "Tạo liên kết đặt lại mật khẩu và gửi qua email cho người dùng" + +#: users/const.py:19 +msgid "Set password" +msgstr "Đặt mật khẩu" + +#: users/const.py:23 +msgid "AUTO" +msgstr "Tự động" + +#: users/const.py:31 +msgid "Full screen" +msgstr "Toàn màn hình" + +#: users/const.py:32 +msgid "Multi screen" +msgstr "Hiển thị nhiều màn hình" + +#: users/const.py:33 +msgid "Drives redirect" +msgstr "Gắn đĩa" + +#: users/const.py:37 +msgid "Current window" +msgstr "Cửa sổ hiện tại" + +#: users/const.py:38 +msgid "New window" +msgstr "Cửa sổ mới" + +#: users/const.py:47 +msgid "High(32 bit)" +msgstr "Cao (32 bit)" + +#: users/const.py:48 +msgid "Medium(16 bit)" +msgstr "Trung bình (16 bit)" + +#: users/const.py:81 +msgid "Replace" +msgstr "Thay thế" + +#: users/const.py:82 +msgid "Suffix" +msgstr "Thêm hậu tố" + +#: users/exceptions.py:9 +msgid "MFA not enabled" +msgstr "MFA chưa được kích hoạt" + +#: users/exceptions.py:19 +msgid "Unable to delete all users" +msgstr "Không thể xóa tất cả người dùng" + +#: users/exceptions.py:24 +msgid "Create failed. The number of SSH keys has reached the limit" +msgstr "Tạo không thành công, số lượng khóa SSH đã đạt giới hạn" + +#: users/forms/profile.py:49 +msgid "" +"When enabled, you will enter the MFA binding process the next time you log " +"in. you can also directly bind in \"personal information -> quick " +"modification -> change MFA Settings\"!" +msgstr "" +"Sau khi kích hoạt, bạn sẽ được đưa vào quy trình liên kết xác thực đa yếu tố" +" (MFA) khi đăng nhập lần tiếp theo; bạn cũng có thể liên kết ngay tại (Thông" +" tin cá nhân -> Sửa đổi nhanh -> Cài đặt MFA xác thực đa yếu tố)!" + +#: users/forms/profile.py:60 +msgid "* Enable MFA to make the account more secure." +msgstr "" +"* Kích hoạt MFA xác thực đa yếu tố để tăng cường bảo mật cho tài khoản." + +#: users/forms/profile.py:69 +msgid "" +"In order to protect you and your company, please keep your account, password" +" and key sensitive information properly. (for example: setting complex " +"password, enabling MFA)" +msgstr "" +"Để bảo vệ an toàn cho bạn và công ty, hãy giữ gìn cẩn thận tài khoản, mật " +"khẩu và các thông tin nhạy cảm quan trọng như: Đặt mật khẩu phức tạp và kích" +" hoạt MFA xác thực đa yếu tố" + +#: users/forms/profile.py:76 +msgid "Finish" +msgstr "Hoàn thành" + +#: users/forms/profile.py:83 users/serializers/preference/lina.py:21 +msgid "New password" +msgstr "Mật khẩu mới" + +#: users/forms/profile.py:88 users/serializers/preference/lina.py:26 +msgid "Confirm password" +msgstr "Xác nhận mật khẩu" + +#: users/forms/profile.py:96 +msgid "Password does not match" +msgstr "Mật khẩu không khớp" + +#: users/forms/profile.py:105 +msgid "The phone number must contain an area code, for example, +86" +msgstr "Số điện thoại phải bao gồm mã vùng, ví dụ +86" + +#: users/forms/profile.py:123 +msgid "Old password" +msgstr "Mật khẩu cũ" + +#: users/forms/profile.py:133 +msgid "Old password error" +msgstr "Mật khẩu cũ không đúng" + +#: users/forms/profile.py:143 +msgid "Automatically configure and download the SSH key" +msgstr "Tự động cấu hình và tải xuống khóa SSH." + +#: users/forms/profile.py:145 +msgid "ssh public key" +msgstr "SSH公钥" + +#: users/forms/profile.py:146 +msgid "ssh-rsa AAAA..." +msgstr "ssh-rsa AAAA..." + +#: users/forms/profile.py:147 +msgid "Paste your id_rsa.pub here." +msgstr "Hãy sao chép khóa công khai của bạn vào đây" + +#: users/forms/profile.py:160 +msgid "Public key should not be the same as your old one." +msgstr "Không được giống với khóa ban đầu" + +#: users/models/preference.py:38 users/serializers/preference/preference.py:19 +msgid "Preference" +msgstr "Cài đặt người dùng" + +#: users/models/user/__init__.py:78 users/serializers/user.py:259 +msgid "Is service account" +msgstr "Is service account" + +#: users/models/user/__init__.py:80 +msgid "Avatar" +msgstr "Ảnh đại diện" + +#: users/models/user/__init__.py:82 +msgid "Wechat" +msgstr "WeChat" + +#: users/models/user/__init__.py:91 +msgid "OTP secret key" +msgstr "OTP khóa" + +#: users/models/user/__init__.py:101 users/serializers/profile.py:86 +#: users/serializers/user.py:256 +msgid "Is first login" +msgstr "First login" + +#: users/models/user/__init__.py:119 +msgid "Date password last updated" +msgstr "Password updated" + +#: users/models/user/__init__.py:122 +msgid "Need update password" +msgstr "Cần cập nhật mật khẩu" + +#: users/models/user/__init__.py:146 +msgid "Face vector" +msgstr "Vector khuôn mặt" + +#: users/models/user/__init__.py:149 +msgid "Date api key used" +msgstr "Ngày cuối cùng sử dụng API key" + +#: users/models/user/__init__.py:289 +msgid "Can not delete admin user" +msgstr "Không thể xóa người dùng quản lý" + +#: users/models/user/__init__.py:303 +msgid "Can invite user" +msgstr "Có thể mời người dùng" + +#: users/models/user/__init__.py:304 +msgid "Can remove user" +msgstr "Có thể gỡ bỏ người dùng" + +#: users/models/user/__init__.py:305 +msgid "Can match user" +msgstr "Có thể khớp người dùng" + +#: users/models/user/__init__.py:334 +msgid "User password history" +msgstr "Lịch sử mật khẩu người dùng" + +#: users/models/user/_auth.py:34 +msgid "Force enabled" +msgstr "Bắt buộc kích hoạt" + +#: users/notifications.py:55 +#: users/templates/users/_msg_password_expire_reminder.html:16 +#: users/templates/users/reset_password.html:5 +#: users/templates/users/reset_password.html:6 +msgid "Reset password" +msgstr "Đặt lại mật khẩu" + +#: users/notifications.py:85 users/views/profile/reset.py:238 +msgid "Reset password success" +msgstr "Đặt lại mật khẩu thành công" + +#: users/notifications.py:117 +msgid "Reset public key success" +msgstr "Đặt lại khóa công khai thành công" + +#: users/notifications.py:143 +msgid "Password is about expire" +msgstr "Mật khẩu sắp hết hạn" + +#: users/notifications.py:171 +msgid "Account is about expire" +msgstr "Tài khoản sắp hết hạn" + +#: users/notifications.py:193 +msgid "Reset SSH Key" +msgstr "Đặt lại khóa SSH" + +#: users/notifications.py:214 +msgid "Reset MFA" +msgstr "Đặt lại MFA" + +#: users/serializers/preference/koko.py:10 +#: users/serializers/preference/luna.py:63 +msgid "File name conflict resolution" +msgstr "Giải pháp xung đột tên tệp" + +#: users/serializers/preference/koko.py:14 +#: users/serializers/preference/luna.py:80 +msgid "Terminal theme name" +msgstr "Tên chủ đề terminal" + +#: users/serializers/preference/lina.py:12 +msgid "" +"*! The password for file encryption, used for decryption when the system " +"sends emails containing file attachments.
Such as: account backup files," +" account password change results files" +msgstr "" +"Mật khẩu mã hóa tệp, khi email hệ thống có tệp đính kèm, sử dụng mật khẩu " +"này để giải mã.
Ví dụ: tệp sao lưu tài khoản, tệp kết quả thay đổi mật " +"khẩu tài khoản" + +#: users/serializers/preference/lina.py:39 users/serializers/profile.py:41 +msgid "The newly set password is inconsistent" +msgstr "Mật khẩu không khớp" + +#: users/serializers/preference/lina.py:47 users/serializers/profile.py:66 +msgid "Language" +msgstr "Ngôn ngữ" + +#: users/serializers/preference/lina.py:52 +msgid "File Encryption" +msgstr "Mật khẩu mã hóa tệp" + +#: users/serializers/preference/luna.py:26 +msgid "Async loading of asset tree" +msgstr "Tải tài sản cây không đồng bộ" + +#: users/serializers/preference/luna.py:30 +msgid "Connect default open method" +msgstr "Kết nối với cách mở mặc định" + +#: users/serializers/preference/luna.py:37 +msgid "RDP resolution" +msgstr "Độ phân giải RDP" + +#: users/serializers/preference/luna.py:41 +msgid "Keyboard layout" +msgstr "Bố cục bàn phím" + +#: users/serializers/preference/luna.py:45 +msgid "RDP client option" +msgstr "Tùy chọn khách hàng RDP" + +#: users/serializers/preference/luna.py:49 +msgid "RDP color quality" +msgstr "Chất lượng màu RDP" + +#: users/serializers/preference/luna.py:53 +msgid "RDP smart size" +msgstr "Kích thước thông minh RDP" + +#: users/serializers/preference/luna.py:54 +msgid "" +"Determines whether the client computer should scale the content on the " +"remote computer to fit the window size of the client computer when the " +"window is resized." +msgstr "" +"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" + +#: users/serializers/preference/luna.py:59 +msgid "Remote app connect method" +msgstr "Cách kết nối ứng dụng từ xa" + +#: users/serializers/preference/luna.py:70 +msgid "Terminal font size" +msgstr "Kích thước phông chữ trong terminal ký tự" + +#: users/serializers/preference/luna.py:73 +msgid "Backspace as Ctrl+H" +msgstr "Terminal ký tự Backspace như Ctrl+H" + +#: users/serializers/preference/luna.py:76 +msgid "Right click quickly paste" +msgstr "Dán nhanh bằng chuột phải" + +#: users/serializers/preference/luna.py:86 +msgid "Graphics" +msgstr "Đồ họa hóa" + +#: users/serializers/preference/luna.py:87 +msgid "Command line" +msgstr "Dòng lệnh" + +#: users/serializers/profile.py:22 +msgid "The old password is incorrect" +msgstr "Mật khẩu cũ không đúng" + +#: users/serializers/profile.py:29 users/serializers/profile.py:144 +msgid "Password does not match security rules" +msgstr "Mật khẩu không đáp ứng quy tắc bảo mật" + +#: users/serializers/profile.py:33 +msgid "The new password cannot be the last {} passwords" +msgstr "Mật khẩu mới không thể là một trong {} mật khẩu gần đây" + +#: users/serializers/profile.py:195 +msgid "Perms" +msgstr "Quyền hạn" + +#: users/serializers/user.py:51 +msgid "System roles" +msgstr "Vai trò hệ thống" + +#: users/serializers/user.py:55 +msgid "" +"System roles are roles at the system level, and they will take effect across" +" all organizations" +msgstr "" +"Vai trò hệ thống là vai trò ở cấp độ hệ thống, có hiệu lực trên tất cả các " +"tổ chức" + +#: users/serializers/user.py:61 +msgid "Org roles" +msgstr "Vai trò tổ chức" + +#: users/serializers/user.py:66 +msgid "" +"Org roles are roles at the organization level, and they will only take " +"effect within current organization" +msgstr "" +"Vai trò tổ chức là vai trò ở cấp độ tổ chức, chỉ có hiệu lực trong tổ chức " +"hiện tại" + +#: users/serializers/user.py:70 +msgid "Organizations and roles" +msgstr "Vai trò tổ chức" + +#: users/serializers/user.py:120 +msgid "Password setting" +msgstr "Tùy chọn mật khẩu" + +#: users/serializers/user.py:122 +msgid "MFA enabled" +msgstr "MFA đã được kích hoạt" + +#: users/serializers/user.py:124 +msgid "MFA force enabled" +msgstr "Bắt buộc MFA" + +#: users/serializers/user.py:126 +msgid "Login blocked" +msgstr "Đăng nhập bị khóa" + +#: users/serializers/user.py:130 users/serializers/user.py:265 +msgid "Is OTP bound" +msgstr "OTP bound" + +#: users/serializers/user.py:133 +msgid "Super Administrator" +msgstr "Siêu quản trị viên" + +#: users/serializers/user.py:136 +msgid "Organization Administrator" +msgstr "Quản trị viên tổ chức" + +#: users/serializers/user.py:140 +msgid "Can public key authentication" +msgstr "Can public key authentication" + +#: users/serializers/user.py:144 +msgid "Is face code set" +msgstr "Có tồn tại đặc điểm khuôn mặt không" + +#: users/serializers/user.py:230 +msgid "Full name" +msgstr "Tên đầy đủ" + +#: users/serializers/user.py:233 +msgid "Login username" +msgstr "Đăng nhập người dùng" + +#: users/serializers/user.py:236 +msgid "Email address" +msgstr "Địa chỉ email" + +#: users/serializers/user.py:246 +msgid "User groups to join" +msgstr "Số lượng nhóm người dùng" + +#: users/serializers/user.py:250 +msgid "" +"User source identifies where the user was created, which could be AD or " +"other sources.There are security settings that can restrict users to log in " +"to the system only from the sources." +msgstr "" +"Nguồn gốc người dùng xác định vị trí tạo, có thể là AD hoặc các nguồn khác. " +"Cài đặt bảo mật có thể giới hạn người dùng chỉ được phép đăng nhập vào hệ " +"thống từ nguồn được chỉ định." + +#: users/serializers/user.py:260 +msgid "Is org admin" +msgstr "Org admin" + +#: users/serializers/user.py:262 +msgid "Avatar url" +msgstr "Đường dẫn ảnh đại diện" + +#: users/serializers/user.py:267 +msgid "MFA level" +msgstr "MFA" + +#: users/serializers/user.py:268 +msgid "Multi-Factor Authentication" +msgstr "Xác thực" + +#: users/serializers/user.py:422 +msgid "" +"* For security, only a partial of users is displayed. You can search for " +"more" +msgstr "" +"* Để đảm bảo an toàn, chỉ hiển thị một phần người dùng. Bạn có thể tìm kiếm " +"thêm" + +#: users/serializers/user.py:457 +msgid "name not unique" +msgstr "Tên bị trùng" + +#: users/signal_handlers.py:41 +msgid "" +"The administrator has enabled \"Only allow existing users to log in\", \n" +" and the current user is not in the user list. Please contact the administrator." +msgstr "" +"Quản trị viên đã bật 'chỉ cho phép người dùng đã tồn tại đăng nhập', người " +"dùng hiện tại không có trong danh sách người dùng, xin vui lòng liên hệ với " +"quản trị viên." + +#: users/signal_handlers.py:179 +msgid "Clean up expired user sessions" +msgstr "Xóa các phiên người dùng đã hết hạn" + +#: users/signal_handlers.py:181 +msgid "" +"After logging in via the web, a user session record is created. At 2 a.m. every day, \n" +" the system cleans up inactive user devices" +msgstr "" +"Sau khi đăng nhập qua web, sẽ phát sinh bản ghi phiên người dùng trực tuyến," +" vào mỗi 2 giờ sáng hàng ngày, hệ thống sẽ dọn dẹp các thiết bị người dùng " +"chưa trực tuyến" + +#: users/tasks.py:26 +msgid "Check password expired" +msgstr "Kiểm tra mật khẩu đã hết hạn" + +#: users/tasks.py:28 +msgid "" +"Check every day at 10 AM whether the passwords of users in the system are expired, \n" +" and send a notification 5 days in advance" +msgstr "" +"Kiểm tra hàng ngày vào lúc 10 giờ sáng xem mật khẩu của người dùng trong hệ " +"thống có hết hạn hay không, thông báo trước 5 ngày" + +#: users/tasks.py:46 +msgid "Periodic check password expired" +msgstr "Kiểm tra định kỳ mật khẩu hết hạn." + +#: users/tasks.py:48 +msgid "" +"With version iterations, new tasks may be added, or task names and execution times may \n" +" be modified. Therefore, upon system startup, it is necessary to register or update the \n" +" parameters of the task that checks if passwords have expired" +msgstr "" +"Với sự phát triển của phiên bản, có thể sẽ có nhiệm vụ mới hoặc thay đổi tên nhiệm vụ, thời gian thực hiện. Do đó, khi hệ thống khởi động, cần đăng ký hoặc cập nhật tham số kiểm tra mật khẩu đã hết hạn của nhiệm vụ. \n" +"\n" +"Kiểm tra người dùng đã hết hạn. \n" +"\n" +"Hàng ngày vào lúc 2 giờ chiều, kiểm tra xem người dùng trong hệ thống có hết hạn hay không và gửi thông báo trước 5 ngày. \n" +"\n" +"Kiểm tra định kỳ người dùng hết hạn. \n" +"\n" +"Với sự phát triển của phiên bản, có thể sẽ có nhiệm vụ mới hoặc thay đổi tên nhiệm vụ, thời gian thực hiện. Do đó, khi hệ thống khởi động, cần đăng ký hoặc cập nhật tham số kiểm tra người dùng đã hết hạn. \n" +"\n" +"Kiểm tra người dùng chưa sử dụng. \n" +"\n" +"Hàng ngày vào lúc 2 giờ chiều, theo cấu hình hệ thống - cài đặt bảo mật - cấu hình tự động vô hiệu hóa người dùng không hoạt động, thực hiện việc vô hiệu hóa đối với những người dùng lâu không đăng nhập hoặc không sử dụng api_key. \n" +"\n" +"Người dùng này đã không đăng nhập gần đây và đã bị vô hiệu hóa. \n" +"\n" +"Tài khoản của bạn sắp hết hạn. \n" +"\n" +"Để không ảnh hưởng đến công việc của bạn, vui lòng liên hệ với quản lý để xác nhận. \n" +"\n" +"Mật khẩu của bạn sẽ sớm hết hạn. \n" +"\n" +"Vì sự an toàn tài khoản của bạn, vui lòng nhấn vào liên kết dưới đây để kịp thời cập nhật mật khẩu. \n" +"\n" +"Nhấn vào đây để cập nhật mật khẩu. \n" +"\n" +"Nếu mật khẩu của bạn đã hết hạn, vui lòng nhấn vào đây. \n" +"\n" +"MFA của bạn đã được quản lý thiết lập lại." + +#: users/tasks.py:67 +msgid "Check user expired" +msgstr "Kiểm tra người dùng đã hết hạn" + +#: users/tasks.py:69 +msgid "" +"Check every day at 2 p.m whether the users in the system are expired, and send a \n" +" notification 5 days in advance" +msgstr "" +"Kiểm tra vào lúc 2 giờ chiều mỗi ngày, xem người dùng trong hệ thống có hết " +"hạn hay không, gửi thông báo trước 5 ngày" + +#: users/tasks.py:90 +msgid "Periodic check user expired" +msgstr "Kiểm tra định kỳ người dùng hết hạn." + +#: users/tasks.py:92 +msgid "" +"With version iterations, new tasks may be added, or task names and execution times may \n" +" be modified. Therefore, upon system startup, it is necessary to register or update the \n" +" parameters of the task that checks if users have expired" +msgstr "" +"Với các phiên bản cập nhật, có thể sẽ có thêm nhiệm vụ hoặc thay đổi tên " +"nhiệm vụ, thời gian thực hiện. Do đó, khi hệ thống khởi động, hãy đăng ký " +"hoặc cập nhật các tham số kiểm tra nhiệm vụ đã hết hạn của người dùng." + +#: users/tasks.py:111 +msgid "Check unused users" +msgstr "Kiểm tra người dùng chưa sử dụng." + +#: users/tasks.py:113 +msgid "" +"At 2 p.m. every day, according to the configuration in \"System Settings - Security - \n" +" Auth security - Auto disable threshold\" users who have not logged in or whose API keys \n" +" have not been used for a long time will be disabled" +msgstr "" +"Mỗi ngày lúc 2 giờ chiều, dựa vào cấu hình hệ thống - cài đặt bảo mật - cấu " +"hình tự động vô hiệu hóa người dùng không hoạt động, những người dùng không " +"đăng nhập trong thời gian dài hoặc không sử dụng api_key sẽ bị vô hiệu hóa." + +#: users/tasks.py:157 +msgid "The user has not logged in recently and has been disabled." +msgstr "" +"Người dùng này đã không đăng nhập trong một thời gian gần đây và đã bị vô " +"hiệu hóa." + +#: users/templates/users/_msg_account_expire_reminder.html:7 +msgid "Your account will expire in" +msgstr "Tài khoản của bạn sắp hết hạn." + +#: users/templates/users/_msg_account_expire_reminder.html:8 +msgid "" +"In order not to affect your normal work, please contact the administrator " +"for confirmation." +msgstr "" +"Để không ảnh hưởng đến công việc của bạn, xin vui lòng liên hệ với quản lý " +"để xác nhận." + +#: users/templates/users/_msg_password_expire_reminder.html:7 +msgid "Your password will expire in" +msgstr "Mật khẩu của bạn sẽ hết hạn." + +#: users/templates/users/_msg_password_expire_reminder.html:8 +msgid "" +"For your account security, please click on the link below to update your " +"password in time" +msgstr "" +"Để đảm bảo an toàn cho tài khoản của bạn, vui lòng nhấp vào liên kết bên " +"dưới để cập nhật mật khẩu kịp thời." + +#: users/templates/users/_msg_password_expire_reminder.html:11 +msgid "Click here update password" +msgstr "Nhấp vào đây để cập nhật mật khẩu." + +#: users/templates/users/_msg_password_expire_reminder.html:15 +msgid "If your password has expired, please click the link below to" +msgstr "Nếu mật khẩu của bạn đã hết hạn, xin vui lòng nhấp vào." + +#: users/templates/users/_msg_reset_mfa.html:7 +msgid "Your MFA has been reset by site administrator" +msgstr "MFA của bạn đã được quản lý đặt lại." + +#: users/templates/users/_msg_reset_mfa.html:8 +#: users/templates/users/_msg_reset_ssh_key.html:8 +msgid "Please click the link below to set" +msgstr "Vui lòng nhấp vào liên kết bên dưới để thiết lập" + +#: users/templates/users/_msg_reset_mfa.html:11 +#: users/templates/users/_msg_reset_ssh_key.html:11 +msgid "Click here set" +msgstr "Nhấp vào đây để thiết lập" + +#: users/templates/users/_msg_reset_ssh_key.html:7 +msgid "Your ssh public key has been reset by site administrator" +msgstr "Khóa SSH của bạn đã được quản trị viên đặt lại" + +#: users/templates/users/_msg_user_created.html:15 +msgid "click here to set your password" +msgstr "Nhấp vào đây để đặt lại mật khẩu" + +#: users/templates/users/forgot_password.html:46 +msgid "Input your email account, that will send a email to your" +msgstr "" +"Nhập địa chỉ email của bạn, một email đặt lại mật khẩu sẽ được gửi đến hộp " +"thư của bạn" + +#: users/templates/users/forgot_password.html:49 +msgid "" +"Enter your mobile number and a verification code will be sent to your phone" +msgstr "" +"Nhập số điện thoại của bạn, mã xác nhận sẽ được gửi đến điện thoại của bạn" + +#: users/templates/users/forgot_password.html:71 +msgid "Email account" +msgstr "Tài khoản email" + +#: users/templates/users/forgot_password.html:93 +msgid "Mobile number" +msgstr "Số điện thoại" + +#: users/templates/users/forgot_password.html:105 +#: users/templates/users/forgot_password_previewing.html:30 +#: users/templates/users/reset_password.html:29 +msgid "Submit" +msgstr "Gửi đi" + +#: users/templates/users/forgot_password_previewing.html:21 +msgid "Please enter the username for which you want to retrieve the password" +msgstr "Vui lòng nhập tên người dùng mà bạn muốn khôi phục mật khẩu" + +#: users/templates/users/mfa_setting.html:124 +msgid "MFA force enable, cannot disable" +msgstr "MFA đã được kích hoạt bắt buộc, không thể tắt" + +#: users/templates/users/mfa_setting.html:143 +msgid "MFA setting" +msgstr "Thiết lập xác thực đa yếu tố MFA" + +#: users/templates/users/mfa_setting.html:171 +msgid "Reset" +msgstr "Đặt lại" + +#: users/templates/users/reset_password.html:23 +msgid "Your password must satisfy" +msgstr "Mật khẩu của bạn phải đáp ứng:" + +#: users/templates/users/reset_password.html:24 +msgid "Password strength" +msgstr "Độ mạnh mật khẩu:" + +#: users/templates/users/reset_password.html:52 +msgid "Very weak" +msgstr "Rất yếu" + +#: users/templates/users/reset_password.html:53 +msgid "Weak" +msgstr "Yếu" + +#: users/templates/users/reset_password.html:55 +msgid "Medium" +msgstr "Bình thường" + +#: users/templates/users/reset_password.html:56 +msgid "Strong" +msgstr "Mạnh" + +#: users/templates/users/reset_password.html:57 +msgid "Very strong" +msgstr "Rất mạnh" + +#: users/templates/users/user_otp_check_password.html:6 +msgid "Enable OTP" +msgstr "Kích hoạt MFA (OTP)" + +#: users/templates/users/user_otp_enable_bind.html:6 +msgid "Bind one-time password authenticator" +msgstr "Liên kết trình xác thực MFA" + +#: users/templates/users/user_otp_enable_bind.html:13 +msgid "" +"Use the MFA Authenticator application to scan the following qr code for a " +"6-bit verification code" +msgstr "" +"Sử dụng ứng dụng trình xác thực MFA quét mã QR dưới đây để nhận mã xác thực " +"6 chữ số" + +#: users/templates/users/user_otp_enable_bind.html:22 +#: users/templates/users/user_verify_mfa.html:27 +msgid "Six figures" +msgstr "6 chữ số" + +#: users/templates/users/user_otp_enable_install_app.html:6 +msgid "Install app" +msgstr "Cài đặt ứng dụng" + +#: users/templates/users/user_otp_enable_install_app.html:13 +msgid "" +"Download and install the MFA Authenticator application on your phone or " +"applet of WeChat" +msgstr "" +"Vui lòng tải xuống và cài đặt ứng dụng trình xác thực MFA trên điện thoại " +"hoặc ứng dụng WeChat" + +#: users/templates/users/user_otp_enable_install_app.html:18 +msgid "Android downloads" +msgstr "Tải xuống cho Android" + +#: users/templates/users/user_otp_enable_install_app.html:23 +msgid "iPhone downloads" +msgstr "Tải xuống cho iPhone" + +#: users/templates/users/user_otp_enable_install_app.html:27 +msgid "" +"After installation, click the next step to enter the binding page (if " +"installed, go to the next step directly)." +msgstr "" +"Sau khi cài đặt hoàn tất, nhấp vào bước tiếp theo để vào trang liên kết (nếu" +" đã cài đặt, hãy đi thẳng đến bước tiếp theo)" + +#: users/templates/users/user_password_verify.html:8 +#: users/templates/users/user_password_verify.html:9 +msgid "Verify password" +msgstr "Xác minh mật khẩu" + +#: users/templates/users/user_verify_mfa.html:9 +msgid "Authenticate" +msgstr "Xác thực danh tính" + +#: users/templates/users/user_verify_mfa.html:15 +msgid "" +"The account protection has been opened, please complete the following " +"operations according to the prompts" +msgstr "" +"Bảo vệ tài khoản đã được kích hoạt, vui lòng thực hiện các thao tác sau theo" +" hướng dẫn" + +#: users/templates/users/user_verify_mfa.html:17 +msgid "Open MFA Authenticator and enter the 6-bit dynamic code" +msgstr "Vui lòng mở trình xác thực MFA, nhập mã động 6 chữ số" + +#: users/views/profile/face.py:57 users/views/profile/face.py:58 +msgid "Face binding successful" +msgstr "Gắn bó đặc trưng khuôn mặt thành công" + +#: users/views/profile/face.py:82 users/views/profile/face.py:83 +msgid "Face unbinding successful" +msgstr "Gỡ gắn bó đặc trưng khuôn mặt thành công" + +#: users/views/profile/otp.py:106 +msgid "Already bound" +msgstr "Đã được gắn bó" + +#: users/views/profile/otp.py:107 +msgid "MFA already bound, disable first, then bound" +msgstr "" +"MFA (OTP) đã được gắn bó, vui lòng vô hiệu hóa trước khi tiến hành gắn bó " +"lại" + +#: users/views/profile/otp.py:134 +msgid "OTP enable success" +msgstr "MFA (OTP) đã được kích hoạt thành công" + +#: users/views/profile/otp.py:135 +msgid "OTP enable success, return login page" +msgstr "MFA (OTP) đã được kích hoạt thành công, quay lại trang đăng nhập" + +#: users/views/profile/otp.py:177 +msgid "Disable OTP" +msgstr "Vô hiệu hóa MFA ảo (OTP)" + +#: users/views/profile/otp.py:183 +msgid "OTP disable success" +msgstr "MFA (OTP) đã được vô hiệu hóa thành công" + +#: users/views/profile/otp.py:184 +msgid "OTP disable success, return login page" +msgstr "MFA (OTP) đã được vô hiệu hóa thành công, quay lại trang đăng nhập" + +#: users/views/profile/password.py:33 users/views/profile/password.py:38 +msgid "Password invalid" +msgstr "Tên người dùng hoặc mật khẩu không hợp lệ" + +#: users/views/profile/reset.py:66 +msgid "" +"Non-local users can log in only from third-party platforms and cannot change" +" their passwords: {}" +msgstr "" +"Người dùng không phải địa phương chỉ cho phép đăng nhập từ nền tảng bên thứ " +"ba, không hỗ trợ thay đổi mật khẩu: {}" + +#: users/views/profile/reset.py:188 users/views/profile/reset.py:199 +msgid "Token invalid or expired" +msgstr "Mã thông báo bị lỗi hoặc đã hết hạn." + +#: users/views/profile/reset.py:204 +msgid "User auth from {}, go there change password" +msgstr "" +"Nguồn xác thực người dùng đến từ {}, vui lòng thay đổi mật khẩu trong hệ " +"thống tương ứng." + +#: users/views/profile/reset.py:211 +msgid "* Your password does not meet the requirements" +msgstr "* Mật khẩu của bạn không đáp ứng yêu cầu." + +#: users/views/profile/reset.py:217 +msgid "* The new password cannot be the last {} passwords" +msgstr "* Mật khẩu mới không được trùng với {} lần mật khẩu gần đây." + +#: users/views/profile/reset.py:239 +msgid "Reset password success, return to login page" +msgstr "Đặt lại mật khẩu thành công, quay lại trang đăng nhập." + +#: xpack/apps.py:8 +msgid "XPACK" +msgstr "XPack" + +#: xpack/exceptions.py:8 +msgid "" +"Based on the current task configuration, assets that do not match the " +"strategy will skipped." +msgstr "" +"Theo cấu hình nhiệm vụ hiện tại, các tài sản không phù hợp với chính sách sẽ" +" bị bỏ qua." + +#: xpack/plugins/cloud/api.py:73 +msgid "Test connection successful" +msgstr "Kiểm tra thành công." + +#: xpack/plugins/cloud/api.py:75 +msgid "Test connection failed: {}" +msgstr "Kiểm tra kết nối thất bại: {}" + +#: xpack/plugins/cloud/api.py:203 +msgid "User {} deleted the current resource and released the assets" +msgstr "Người dùng {} đã xóa tài sản đã được giải phóng hiện tại." + +#: xpack/plugins/cloud/const.py:8 +msgid "Alibaba Cloud" +msgstr "Alibaba Cloud" + +#: xpack/plugins/cloud/const.py:9 +msgid "AWS (International)" +msgstr "AWS (Quốc tế)" + +#: xpack/plugins/cloud/const.py:10 +msgid "AWS (China)" +msgstr "AWS (Trung Quốc)" + +#: xpack/plugins/cloud/const.py:11 +msgid "Azure (China)" +msgstr "Azure (Trung Quốc)" + +#: xpack/plugins/cloud/const.py:12 +msgid "Azure (International)" +msgstr "Azure (Quốc tế)" + +#: xpack/plugins/cloud/const.py:14 +msgid "Baidu Cloud" +msgstr "Baidu Cloud." + +#: xpack/plugins/cloud/const.py:15 +msgid "JD Cloud" +msgstr "京东云" + +#: xpack/plugins/cloud/const.py:16 +msgid "KingSoft Cloud" +msgstr "金山云" + +#: xpack/plugins/cloud/const.py:17 +msgid "Tencent Cloud" +msgstr "腾讯云" + +#: xpack/plugins/cloud/const.py:18 +msgid "Tencent Cloud (Lighthouse)" +msgstr "腾讯云 (ứng dụng máy chủ nhẹ)" + +#: xpack/plugins/cloud/const.py:19 +msgid "Google Cloud Platform" +msgstr "Google Cloud" + +#: xpack/plugins/cloud/const.py:20 +msgid "UCloud" +msgstr "ucloud" + +#: xpack/plugins/cloud/const.py:21 +msgid "Volcengine" +msgstr "Kubernetes Engine" + +#: xpack/plugins/cloud/const.py:23 +msgid "VMware" +msgstr "VMware" + +#: xpack/plugins/cloud/const.py:24 xpack/plugins/cloud/providers/nutanix.py:15 +msgid "Nutanix" +msgstr "Nutanix" + +#: xpack/plugins/cloud/const.py:25 +msgid "Huawei Private Cloud" +msgstr "Huawei Private Cloud" + +#: xpack/plugins/cloud/const.py:26 +msgid "Qingyun Private Cloud" +msgstr "QingCloud Private Cloud" + +#: xpack/plugins/cloud/const.py:27 +msgid "CTYun Private Cloud" +msgstr "Tianyi Private Cloud" + +#: xpack/plugins/cloud/const.py:28 +msgid "OpenStack" +msgstr "OpenStack" + +#: xpack/plugins/cloud/const.py:29 +msgid "ZStack" +msgstr "ZStack" + +#: xpack/plugins/cloud/const.py:30 xpack/plugins/cloud/providers/smartx.py:9 +msgid "SmartX CloudTower" +msgstr "" + +#: xpack/plugins/cloud/const.py:31 +msgid "Fusion Compute" +msgstr "Hợp nhất tính toán" + +#: xpack/plugins/cloud/const.py:32 +msgid "SCP" +msgstr "Sangtin công SCP" + +#: xpack/plugins/cloud/const.py:33 +msgid "Apsara Stack" +msgstr "Đám mây riêng của Alibaba" + +#: xpack/plugins/cloud/const.py:34 +msgid "Proxmox" +msgstr "Proxmox" + +#: xpack/plugins/cloud/const.py:44 +msgid "Private IP" +msgstr "IP riêng" + +#: xpack/plugins/cloud/const.py:45 +msgid "Public IP" +msgstr "IP công cộng" + +#: xpack/plugins/cloud/const.py:49 xpack/plugins/cloud/models.py:372 +msgid "Instance name" +msgstr "Tên实例" + +#: xpack/plugins/cloud/const.py:50 +msgid "Instance name and Partial IP" +msgstr "Tên实例 và một phần IP" + +#: xpack/plugins/cloud/const.py:55 +msgid "Succeed" +msgstr "Thành công" + +#: xpack/plugins/cloud/const.py:59 xpack/plugins/cloud/manager.py:107 +msgid "Unsync" +msgstr "Chưa đồng bộ" + +#: xpack/plugins/cloud/const.py:60 xpack/plugins/cloud/manager.py:106 +msgid "New Sync" +msgstr "Đồng bộ mới" + +#: xpack/plugins/cloud/const.py:61 xpack/plugins/cloud/manager.py:106 +msgid "Synced" +msgstr "Đã đồng bộ" + +#: xpack/plugins/cloud/const.py:62 xpack/plugins/cloud/manager.py:108 +msgid "Released" +msgstr "Đã giải phóng" + +#: xpack/plugins/cloud/const.py:66 +msgid "And" +msgstr "Với" + +#: xpack/plugins/cloud/const.py:67 +msgid "Or" +msgstr "Hoặc" + +#: xpack/plugins/cloud/const.py:71 +msgid "Sync region" +msgstr "Tổ chức đã đồng bộ" + +#: xpack/plugins/cloud/const.py:73 +msgid "Imported" +msgstr "Nhập khẩu" + +#: xpack/plugins/cloud/manager.py:60 +msgid "Task \"%s\" starts executing" +msgstr "Nhiệm vụ \"%s\" bắt đầu thực hiện" + +#: xpack/plugins/cloud/manager.py:99 +msgid "View the task details path: " +msgstr "Xem chi tiết" + +#: xpack/plugins/cloud/manager.py:102 +msgid "Account Details" +msgstr "Tài khoản" + +#: xpack/plugins/cloud/manager.py:103 +msgid "Synchronization History List" +msgstr "Đồng bộ danh sách lịch sử" + +#: xpack/plugins/cloud/manager.py:103 +msgid "Synchronization Instance List" +msgstr "Đồng bộ danh sách实例" + +#: xpack/plugins/cloud/manager.py:107 +msgid "To be released" +msgstr "Đợi giải phóng" + +#: xpack/plugins/cloud/manager.py:111 +msgid "Task execution completed" +msgstr "Nhiệm vụ đã hoàn thành" + +#: xpack/plugins/cloud/manager.py:116 +msgid "Synchronization regions" +msgstr "Đồng bộ khu vực" + +#: xpack/plugins/cloud/manager.py:141 +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" + +#: xpack/plugins/cloud/manager.py:187 +msgid "Failed to synchronize the instance \"%s\"" +msgstr "Không thể đồng bộ实例 %s" + +#: xpack/plugins/cloud/manager.py:378 +msgid "" +"The updated platform of asset \"%s\" is inconsistent with the original " +"platform type. Skip platform and protocol updates" +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 " +"đầu. Bỏ qua cập nhật nền tảng và giao thức" + +#: xpack/plugins/cloud/manager.py:435 +msgid "The asset \"%s\" already exists" +msgstr "Tài sản \"%s\" đã tồn tại" + +#: xpack/plugins/cloud/manager.py:437 +msgid "Update asset \"%s\"" +msgstr "Cập nhật tài sản \"%s\"" + +#: xpack/plugins/cloud/manager.py:440 +msgid "Asset \"%s\" has been updated" +msgstr "Tài sản \"%s\" đã được cập nhật." + +#: xpack/plugins/cloud/manager.py:449 +msgid "Prepare to create asset \"%s\"" +msgstr "Chuẩn bị tạo tài sản %s" + +#: xpack/plugins/cloud/manager.py:470 +msgid "Set nodes \"%s\"" +msgstr "Thiết lập nút: \"%s\"" + +#: xpack/plugins/cloud/manager.py:496 +msgid "Set accounts \"%s\"" +msgstr "Thiết lập tài khoản: %s" + +#: xpack/plugins/cloud/manager.py:512 +msgid "Set protocols \"%s\"" +msgstr "Thiết lập giao thức \"%s\"" + +#: xpack/plugins/cloud/manager.py:520 +msgid "Set labels \"%s\"" +msgstr "Thiết lập nhãn: \"%s\"" + +#: xpack/plugins/cloud/manager.py:534 xpack/plugins/cloud/tasks.py:31 +msgid "Run sync instance task" +msgstr "Thực hiện nhiệm vụ đồng bộ hóa phiên bản" + +#: xpack/plugins/cloud/meta.py:9 +msgid "Cloud center" +msgstr "Trung tâm quản lý đám mây" + +#: xpack/plugins/cloud/models.py:43 +#: xpack/plugins/cloud/serializers/account.py:101 +msgid "Attrs" +msgstr "Thuộc tính" + +#: xpack/plugins/cloud/models.py:44 +msgid "Validity" +msgstr "Hiệu lực" + +#: xpack/plugins/cloud/models.py:49 +msgid "Cloud account" +msgstr "Tài khoản đám mây" + +#: xpack/plugins/cloud/models.py:51 +msgid "Test cloud account" +msgstr "Tài khoản đám mây kiểm tra" + +#: xpack/plugins/cloud/models.py:109 +#: xpack/plugins/cloud/serializers/account.py:79 +#: xpack/plugins/cloud/serializers/task.py:170 +#: xpack/plugins/cloud/serializers/task.py:171 +msgid "Regions" +msgstr "Khu vực" + +#: xpack/plugins/cloud/models.py:112 +msgid "Hostname strategy" +msgstr "Chính sách tên máy chủ" + +#: xpack/plugins/cloud/models.py:117 +msgid "IP network segment group" +msgstr "Nhóm dải IP" + +#: xpack/plugins/cloud/models.py:121 +#: xpack/plugins/cloud/serializers/task.py:174 +msgid "Preferred IP type" +msgstr "Loại IP ưu tiên." + +#: xpack/plugins/cloud/models.py:124 +msgid "Always update" +msgstr "Luôn cập nhật" + +#: xpack/plugins/cloud/models.py:126 +msgid "Fully synchronous" +msgstr "Hoàn toàn đồng bộ" + +#: xpack/plugins/cloud/models.py:127 +msgid "Release assets" +msgstr "Phát hành tài sản" + +#: xpack/plugins/cloud/models.py:132 +msgid "Date last sync" +msgstr "Ngày đồng bộ cuối cùng" + +#: xpack/plugins/cloud/models.py:135 xpack/plugins/cloud/models.py:390 +#: xpack/plugins/cloud/models.py:417 +msgid "Strategy" +msgstr "Chiến lược" + +#: xpack/plugins/cloud/models.py:140 xpack/plugins/cloud/models.py:228 +msgid "Sync instance task" +msgstr "Nhiệm vụ đồng bộ thực thể" + +#: xpack/plugins/cloud/models.py:239 xpack/plugins/cloud/models.py:302 +msgid "Date sync" +msgstr "Ngày đồng bộ" + +#: xpack/plugins/cloud/models.py:243 +msgid "Sync instance snapshot" +msgstr "Ảnh chụp nhanh thực thể đồng bộ" + +#: xpack/plugins/cloud/models.py:251 +msgid "Sync instance task execution" +msgstr "Thực hiện nhiệm vụ đồng bộ thực thể" + +#: xpack/plugins/cloud/models.py:282 +msgid "Sync task" +msgstr "Nhiệm vụ đồng bộ" + +#: xpack/plugins/cloud/models.py:286 +msgid "Sync instance task history" +msgstr "Lịch sử nhiệm vụ đồng bộ thực thể" + +#: xpack/plugins/cloud/models.py:289 +msgid "Instance" +msgstr "Thực thể" + +#: xpack/plugins/cloud/models.py:306 +msgid "Sync instance detail" +msgstr "Chi tiết thực thể đồng bộ" + +#: xpack/plugins/cloud/models.py:318 +#: xpack/plugins/cloud/serializers/task.py:79 +msgid "Rule relation" +msgstr "Quan hệ điều kiện" + +#: xpack/plugins/cloud/models.py:331 +msgid "Task strategy" +msgstr "Chiến lược nhiệm vụ" + +#: xpack/plugins/cloud/models.py:361 +msgid "Equal" +msgstr "Bằng" + +#: xpack/plugins/cloud/models.py:362 +msgid "Not Equal" +msgstr "Không bằng" + +#: xpack/plugins/cloud/models.py:363 +msgid "In" +msgstr "Trong..." + +#: xpack/plugins/cloud/models.py:364 +msgid "Contains" +msgstr "Bao gồm" + +#: xpack/plugins/cloud/models.py:365 +msgid "Exclude" +msgstr "Loại trừ" + +#: xpack/plugins/cloud/models.py:366 +msgid "Startswith" +msgstr "Bắt đầu bằng..." + +#: xpack/plugins/cloud/models.py:367 +msgid "Endswith" +msgstr "Kết thúc bằng..." + +#: xpack/plugins/cloud/models.py:373 +msgid "Instance platform" +msgstr "Nền tảng ví dụ" + +#: xpack/plugins/cloud/models.py:374 +msgid "Instance address" +msgstr "Địa chỉ ví dụ" + +#: xpack/plugins/cloud/models.py:381 +msgid "Rule attr" +msgstr "Thuộc tính quy tắc" + +#: xpack/plugins/cloud/models.py:385 +msgid "Rule match" +msgstr "Khớp quy tắc" + +#: xpack/plugins/cloud/models.py:387 +msgid "Rule value" +msgstr "Giá trị quy tắc" + +#: xpack/plugins/cloud/models.py:394 +#: xpack/plugins/cloud/serializers/task.py:82 +msgid "Strategy rule" +msgstr "Điều kiện" + +#: xpack/plugins/cloud/models.py:405 +msgid "Name strategy" +msgstr "Chính sách tên máy chủ" + +#: xpack/plugins/cloud/models.py:412 +msgid "Action attr" +msgstr "Thuộc tính Action" + +#: xpack/plugins/cloud/models.py:414 +msgid "Action value" +msgstr "Giá trị Hành động" + +#: xpack/plugins/cloud/models.py:421 +#: xpack/plugins/cloud/serializers/task.py:85 +msgid "Strategy action" +msgstr "Hành động" + +#: xpack/plugins/cloud/providers/aws_international.py:18 +msgid "China (Beijing)" +msgstr "Trung Quốc (Bắc Kinh)" + +#: xpack/plugins/cloud/providers/aws_international.py:19 +msgid "China (Ningxia)" +msgstr "Trung Quốc (Ninh Hạ)" + +#: xpack/plugins/cloud/providers/aws_international.py:22 +msgid "US East (Ohio)" +msgstr "Hoa Kỳ miền Đông (Tiểu bang Ohio)" + +#: xpack/plugins/cloud/providers/aws_international.py:23 +msgid "US East (N. Virginia)" +msgstr "Hoa Kỳ miền Đông (Bắc Virginia)" + +#: xpack/plugins/cloud/providers/aws_international.py:24 +msgid "US West (N. California)" +msgstr "Hoa Kỳ miền Tây (Bắc California)" + +#: xpack/plugins/cloud/providers/aws_international.py:25 +msgid "US West (Oregon)" +msgstr "Hoa Kỳ miền Tây (Oregon)" + +#: xpack/plugins/cloud/providers/aws_international.py:26 +msgid "Africa (Cape Town)" +msgstr "Châu Phi (Cape Town)" + +#: xpack/plugins/cloud/providers/aws_international.py:27 +msgid "Asia Pacific (Hong Kong)" +msgstr "Khu vực châu Á - Thái Bình Dương (Hồng Kông)" + +#: xpack/plugins/cloud/providers/aws_international.py:28 +msgid "Asia Pacific (Mumbai)" +msgstr "Khu vực châu Á - Thái Bình Dương (Mumbai)" + +#: xpack/plugins/cloud/providers/aws_international.py:29 +msgid "Asia Pacific (Osaka-Local)" +msgstr "Khu vực châu Á - Thái Bình Dương (Địa phương Osaka)" + +#: xpack/plugins/cloud/providers/aws_international.py:30 +msgid "Asia Pacific (Seoul)" +msgstr "Khu vực châu Á - Thái Bình Dương (Seoul)" + +#: xpack/plugins/cloud/providers/aws_international.py:31 +msgid "Asia Pacific (Singapore)" +msgstr "Khu vực châu Á - Thái Bình Dương (Singapore)" + +#: xpack/plugins/cloud/providers/aws_international.py:32 +msgid "Asia Pacific (Sydney)" +msgstr "Khu vực châu Á - Thái Bình Dương (Sydney)" + +#: xpack/plugins/cloud/providers/aws_international.py:33 +msgid "Asia Pacific (Tokyo)" +msgstr "Khu vực Châu Á-Thái Bình Dương (Tokyo)" + +#: xpack/plugins/cloud/providers/aws_international.py:34 +msgid "Canada (Central)" +msgstr "Canada (Trung tâm)" + +#: xpack/plugins/cloud/providers/aws_international.py:35 +msgid "Europe (Frankfurt)" +msgstr "Châu Âu (Frankfurt)" + +#: xpack/plugins/cloud/providers/aws_international.py:36 +msgid "Europe (Ireland)" +msgstr "Châu Âu (Ireland)" + +#: xpack/plugins/cloud/providers/aws_international.py:37 +msgid "Europe (London)" +msgstr "Châu Âu (London)" + +#: xpack/plugins/cloud/providers/aws_international.py:38 +msgid "Europe (Milan)" +msgstr "Châu Âu (Milan)" + +#: xpack/plugins/cloud/providers/aws_international.py:39 +msgid "Europe (Paris)" +msgstr "Châu Âu (Paris)" + +#: xpack/plugins/cloud/providers/aws_international.py:40 +msgid "Europe (Stockholm)" +msgstr "Châu Âu (Stockholm)" + +#: xpack/plugins/cloud/providers/aws_international.py:41 +msgid "Middle East (Bahrain)" +msgstr "Trung Đông (Bahrain)" + +#: xpack/plugins/cloud/providers/aws_international.py:42 +msgid "South America (São Paulo)" +msgstr "Nam Mỹ (São Paulo)" + +#: xpack/plugins/cloud/providers/baiducloud.py:56 +#: xpack/plugins/cloud/providers/jdcloud.py:125 +msgid "CN North-Beijing" +msgstr "Miền Bắc Trung Quốc - Bắc Kinh" + +#: xpack/plugins/cloud/providers/baiducloud.py:57 +msgid "CN North-Baoding" +msgstr "Miền Bắc Trung Quốc - Bảo Định" + +#: xpack/plugins/cloud/providers/baiducloud.py:58 +msgid "CN East-Suzhou" +msgstr "Miền Đông Trung Quốc - Tô Châu" + +#: xpack/plugins/cloud/providers/baiducloud.py:59 +#: xpack/plugins/cloud/providers/huaweicloud.py:47 +#: xpack/plugins/cloud/providers/jdcloud.py:128 +msgid "CN South-Guangzhou" +msgstr "Miền Nam Trung Quốc - Quảng Châu" + +#: xpack/plugins/cloud/providers/baiducloud.py:60 +msgid "CN Southwest-Chengdu" +msgstr "Miền Tây Nam - Thành Đô" + +#: xpack/plugins/cloud/providers/baiducloud.py:61 +#: xpack/plugins/cloud/providers/huaweicloud.py:54 +msgid "CN-Hong Kong" +msgstr "Trung Quốc - Hồng Kông" + +#: xpack/plugins/cloud/providers/baiducloud.py:62 +msgid "CN Center-Wuhan" +msgstr "Trung Tây - Vũ Hán" + +#: xpack/plugins/cloud/providers/baiducloud.py:63 +#: xpack/plugins/cloud/providers/jdcloud.py:127 +msgid "CN East-Shanghai" +msgstr "Đông Trung Quốc - Thượng Hải" + +#: xpack/plugins/cloud/providers/baiducloud.py:64 +#: xpack/plugins/cloud/providers/huaweicloud.py:56 +msgid "AP-Singapore" +msgstr "Châu Á - Thượng Hải" + +#: xpack/plugins/cloud/providers/gcp.py:64 +#: xpack/plugins/cloud/providers/huaweicloud.py:34 +msgid "Account unavailable" +msgstr "Tài khoản không hợp lệ" + +#: xpack/plugins/cloud/providers/huaweicloud.py:44 +msgid "CN North-Beijing1" +msgstr "Bắc Trung Quốc - Bắc Kinh 1" + +#: xpack/plugins/cloud/providers/huaweicloud.py:45 +msgid "CN North-Beijing4" +msgstr "Bắc Trung Quốc - Bắc Kinh 4" + +#: xpack/plugins/cloud/providers/huaweicloud.py:46 +msgid "CN North-Ulanqab1" +msgstr "Bắc Trung Quốc - Ulanqab Một" + +#: xpack/plugins/cloud/providers/huaweicloud.py:48 +msgid "CN South-Shenzhen" +msgstr "Nam Trung Quốc - Quảng Châu" + +#: xpack/plugins/cloud/providers/huaweicloud.py:49 +msgid "CN South-Guangzhou-InvitationOnly" +msgstr "Nam Trung Quốc - Quảng Châu - Môi trường người dùng thân thiện" + +#: xpack/plugins/cloud/providers/huaweicloud.py:50 +msgid "CN East-Shanghai2" +msgstr "Đông Trung Quốc - Thượng Hải 2" + +#: xpack/plugins/cloud/providers/huaweicloud.py:51 +msgid "CN East-Shanghai1" +msgstr "Đông Trung Quốc - Thượng Hải 1" + +#: xpack/plugins/cloud/providers/huaweicloud.py:53 +msgid "CN Southwest-Guiyang1" +msgstr "Tây Nam - Quý Dương 1" + +#: xpack/plugins/cloud/providers/huaweicloud.py:55 +msgid "AP-Bangkok" +msgstr "Châu Á - Bangkok" + +#: xpack/plugins/cloud/providers/huaweicloud.py:58 +msgid "AF-Johannesburg" +msgstr "Châu Phi - Johannesburg." + +#: xpack/plugins/cloud/providers/huaweicloud.py:59 +msgid "LA-Mexico City1" +msgstr "Latinh Mỹ - Thành phố Mexico" + +#: xpack/plugins/cloud/providers/huaweicloud.py:60 +msgid "LA-Santiago" +msgstr "Latinh Mỹ - Santiago" + +#: xpack/plugins/cloud/providers/huaweicloud.py:61 +msgid "LA-Sao Paulo1" +msgstr "Latinh Mỹ - São Paulo" + +#: xpack/plugins/cloud/providers/huaweicloud.py:63 +msgid "TR-Istanbul" +msgstr "TR-Istanbul" + +#: xpack/plugins/cloud/providers/jdcloud.py:126 +msgid "CN East-Suqian" +msgstr "Hoa Đông - Thụy Kiến" + +#: xpack/plugins/cloud/providers/lan.py:79 +msgid "Port \"%(port)s\" of instance IP \"%(ip)s\" is not reachable" +msgstr "Cổng %(port)s của IP %(ip)s không thể truy cập" + +#: xpack/plugins/cloud/serializers/account.py:102 +msgid "Validity display" +msgstr "Hiển thị tính hợp lệ" + +#: xpack/plugins/cloud/serializers/account.py:103 +msgid "Provider display" +msgstr "Hiển thị nhà cung cấp dịch vụ" + +#: xpack/plugins/cloud/serializers/account_attrs.py:32 +msgid "Access key id" +msgstr "Access key id" + +#: xpack/plugins/cloud/serializers/account_attrs.py:59 +msgid "Subscription ID" +msgstr "ID đăng ký" + +#: xpack/plugins/cloud/serializers/account_attrs.py:80 +#: xpack/plugins/cloud/serializers/account_attrs.py:114 +#: xpack/plugins/cloud/serializers/account_attrs.py:118 +#: xpack/plugins/cloud/serializers/account_attrs.py:135 +#: xpack/plugins/cloud/serializers/account_attrs.py:143 +#: xpack/plugins/cloud/serializers/account_attrs.py:150 +#: xpack/plugins/cloud/serializers/account_attrs.py:157 +#: xpack/plugins/cloud/serializers/account_attrs.py:187 +#: xpack/plugins/cloud/serializers/account_attrs.py:237 +msgid "API Endpoint" +msgstr "Điểm cuối API" + +#: xpack/plugins/cloud/serializers/account_attrs.py:89 +msgid "Auto node classification" +msgstr "Phân loại nút tự động" + +#: xpack/plugins/cloud/serializers/account_attrs.py:124 +msgid "Auth url" +msgstr "Địa chỉ xác thực" + +#: xpack/plugins/cloud/serializers/account_attrs.py:125 +msgid "eg: http://openstack.example.com:5000/v3" +msgstr "Ví dụ: http://openstack.example.com:5000/v3" + +#: xpack/plugins/cloud/serializers/account_attrs.py:128 +msgid "User domain" +msgstr "Miền người dùng" + +#: xpack/plugins/cloud/serializers/account_attrs.py:158 +msgid "Cert File" +msgstr "Tập tin chứng chỉ" + +#: xpack/plugins/cloud/serializers/account_attrs.py:159 +msgid "Key File" +msgstr "Tập tin khóa" + +#: xpack/plugins/cloud/serializers/account_attrs.py:175 +msgid "Service account key" +msgstr "Khóa tài khoản dịch vụ" + +#: xpack/plugins/cloud/serializers/account_attrs.py:176 +msgid "The file is in JSON format" +msgstr "Tập tin định dạng JSON" + +#: xpack/plugins/cloud/serializers/account_attrs.py:194 +msgid "IP address invalid `{}`, {}" +msgstr "Địa chỉ IP không hợp lệ: `{}`, {}" + +#: xpack/plugins/cloud/serializers/account_attrs.py:210 +msgid "Such as: 192.168.1.0/24, 10.0.0.0-10.0.0.255" +msgstr "Ví dụ: 192.168.1.0/24, 10.0.0.0-10.0.0.255" + +#: xpack/plugins/cloud/serializers/account_attrs.py:213 +msgid "" +"The port is used to detect the validity of the IP address. When the " +"synchronization task is executed, only the valid IP address will be " +"synchronized.
If the port is 0, all IP addresses are valid." +msgstr "" +"Cổng được sử dụng để kiểm tra tính hợp lệ của địa chỉ IP, trong quá trình " +"thực hiện nhiệm vụ đồng bộ, chỉ những địa chỉ IP hợp lệ mới được đồng bộ. " +"
Nếu cổng là 0, điều đó có nghĩa là tất cả các địa chỉ IP đều hợp lệ." + +#: xpack/plugins/cloud/serializers/account_attrs.py:221 +msgid "Hostname prefix" +msgstr "Tiền tố tên máy chủ" + +#: xpack/plugins/cloud/serializers/account_attrs.py:224 +msgid "IP segment" +msgstr "Phân đoạn IP" + +#: xpack/plugins/cloud/serializers/account_attrs.py:228 +msgid "Test port" +msgstr "Cổng kiểm tra" + +#: xpack/plugins/cloud/serializers/account_attrs.py:231 +msgid "Test timeout" +msgstr "Thời gian timeout kiểm tra" + +#: xpack/plugins/cloud/serializers/account_attrs.py:247 +msgid "Project" +msgstr "dự án" + +#: xpack/plugins/cloud/serializers/task.py:168 +msgid "History count" +msgstr "Số lần thực hiện" + +#: xpack/plugins/cloud/serializers/task.py:169 +msgid "Instance count" +msgstr "Số lượng phiên bản" + +#: xpack/plugins/cloud/tasks.py:33 +msgid "" +"Execute this task when manually or scheduled cloud synchronization tasks are" +" performed" +msgstr "" +"Thực hiện nhiệm vụ đồng bộ trên đám mây theo cách thủ công hoặc theo lịch " +"trình khi thực hiện nhiệm vụ này" + +#: xpack/plugins/cloud/tasks.py:50 +msgid "Period clean sync instance task execution" +msgstr "Định kỳ xóa ghi lại nhiệm vụ thực hiện các phiên bản đồng bộ." + +#: xpack/plugins/cloud/tasks.py:52 +msgid "" +"Every day, according to the configuration in \"System Settings - Tasks - Regular \n" +" clean-up - Cloud sync task history retention days\" the system will clean up the execution \n" +" records generated by cloud synchronization" +msgstr "" +"Hằng ngày, hệ thống sẽ thực hiện việc dọn dẹp các ghi chép được tạo ra trong quá trình đồng bộ đám mây dựa trên cấu hình trong “Cài đặt hệ thống - Nhiệm vụ - Dọn dẹp định kỳ - Số ngày lưu trữ ghi chép lịch sử nhiệm vụ đồng bộ đám mây”. \n" +"\n" +"Khôi phục mặc định thành công!\n" +"\n" +"Cài đặt giao diện \n" +"\n" +"Tiêu đề trang đăng nhập \n" +"\n" +"Hình ảnh trang đăng nhập \n" +"\n" +"Biểu tượng trang web \n" +"\n" +"Logo trang quản lý\n" +"\n" +"Đăng xuất \n" +"\n" +"Chủ đề \n" +"\n" +"Nội dung chân trang \n" +"\n" +"Logo rộng ở trên cùng \n" +"\n" +"Logo vuông nhỏ \n" +"\n" +"Nhập giấy phép thành công \n" +"\n" +"Giấy phép không hợp lệ" + +#: xpack/plugins/interface/api.py:52 +msgid "Restore default successfully." +msgstr "Khôi phục mặc định thành công!" + +#: xpack/plugins/interface/meta.py:9 xpack/plugins/interface/models.py:45 +#: xpack/plugins/interface/models.py:86 +msgid "Interface settings" +msgstr "Cài đặt giao diện" + +#: xpack/plugins/interface/models.py:23 +msgid "Login title" +msgstr "Tiêu đề trang đăng nhập" + +#: xpack/plugins/interface/models.py:27 +msgid "Login image" +msgstr "Hình ảnh trang đăng nhập." + +#: xpack/plugins/interface/models.py:31 +msgid "Website icon" +msgstr "Biểu tượng trang web" + +#: xpack/plugins/interface/models.py:35 +msgid "Index logo" +msgstr "Trang quản lý Logo" + +#: xpack/plugins/interface/models.py:39 +msgid "Logout logo" +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 +msgid "Footer content" +msgstr "Nội dung chân trang" + +#: xpack/plugins/interface/serializers/interface.py:37 +msgid "Wide logo on top" +msgstr "Logo rộng trên cùng" + +#: xpack/plugins/interface/serializers/interface.py:38 +msgid "Small logo without text" +msgstr "Logo vuông nhỏ" + +#: xpack/plugins/license/api.py:52 +msgid "License import successfully" +msgstr "Nhập giấy phép thành công" + +#: xpack/plugins/license/api.py:53 +msgid "Invalid license" +msgstr "Giấy phép không hợp lệ" diff --git a/apps/i18n/core/vi/LC_MESSAGES/djangojs.po b/apps/i18n/core/vi/LC_MESSAGES/djangojs.po new file mode 100644 index 000000000..85a38a3e2 --- /dev/null +++ b/apps/i18n/core/vi/LC_MESSAGES/djangojs.po @@ -0,0 +1,100 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-02-24 14:25+0800\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: static/js/jumpserver.js:267 +msgid "Update is successful!" +msgstr "Cập nhật thành công" + +#: static/js/jumpserver.js:269 +msgid "An unknown error occurred while updating.." +msgstr "Đã xảy ra lỗi không xác định khi cập nhật" + +#: static/js/jumpserver.js:342 +msgid "Not found" +msgstr "Không tìm thấy" + +#: static/js/jumpserver.js:344 +msgid "Server error" +msgstr "Lỗi máy chủ" + +#: static/js/jumpserver.js:346 static/js/jumpserver.js:384 +#: static/js/jumpserver.js:386 +msgid "Error" +msgstr "Lỗi" + +#: static/js/jumpserver.js:352 static/js/jumpserver.js:393 +msgid "Delete the success" +msgstr "Xóa thành công" + +#: static/js/jumpserver.js:359 +msgid "Are you sure about deleting it?" +msgstr "Bạn có chắc chắn muốn xóa không?" + +#: static/js/jumpserver.js:363 static/js/jumpserver.js:404 +msgid "Cancel" +msgstr "Hủy" + +#: static/js/jumpserver.js:365 static/js/jumpserver.js:406 +msgid "Confirm" +msgstr "Xác nhận" + +#: static/js/jumpserver.js:384 +msgid "" +"The organization contains undeleted information. Please try again after deleting" +msgstr "Tổ chức còn chứa thông tin chưa được xóa, vui lòng xóa rồi thử lại" + +#: static/js/jumpserver.js:386 +msgid "" +"Do not perform this operation under this organization. Try again after switching to another organization" +msgstr "Đừng thực hiện thao tác này trong tổ chức hiện tại, hãy chuyển sang tổ chức khác rồi thử lại" + +#: static/js/jumpserver.js:400 +msgid "" +"Please ensure that the following information in the organization has been deleted" +msgstr "Vui lòng đảm bảo rằng các thông tin sau trong tổ chức đã được xóa" + +#: static/js/jumpserver.js:401 +msgid "" +"User list、User group、Asset list、Domain list、Admin user、System user、Labels、Asset permission" +msgstr "Danh sách người dùng, Nhóm người dùng, Danh sách tài sản, Danh sách miền, Người dùng đặc quyền, Người dùng hệ thống, Quản lý nhãn, Quy tắc cấp quyền tài sản" + +#: static/js/jumpserver.js:650 +msgid "Unknown error occur" +msgstr "Xuất hiện lỗi không xác định" + +#: static/js/jumpserver.js:902 +msgid "Password minimum length {N} bits" +msgstr "Mật khẩu phải có tối thiểu {N} ký tự" + +#: static/js/jumpserver.js:903 +msgid "Must contain capital letters" +msgstr "Phải chứa chữ cái viết hoa" + +#: static/js/jumpserver.js:904 +msgid "Must contain lowercase letters" +msgstr "Phải chứa chữ cái viết thường" + +#: static/js/jumpserver.js:905 +msgid "Must contain numeric characters" +msgstr "Phải chứa ký tự số" + +#: static/js/jumpserver.js:906 +msgid "Must contain special characters" +msgstr "Phải chứa ký tự đặc biệt" diff --git a/apps/i18n/koko/en.json b/apps/i18n/koko/en.json index ee6daf1e8..7bb6ddac3 100644 --- a/apps/i18n/koko/en.json +++ b/apps/i18n/koko/en.json @@ -123,5 +123,108 @@ "Warning": "Warning", "WebSocketClosed": "WebSocket closed", "WebSocketConnectionIsClosedHelpText": "WebSocket connection is closed, please refresh the page or reconnect.", - "Writable": "Writable" + "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": "", + "part IP, Hostname, Comment": "", + "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 get auth token failed": "", + "Get auth password failed": "", + "Reuse SSH connections (%s@%s) [Number of connections: %d]": "", + "Switched to %s": "", + "Connect with api server failed": "", + "Start domain gateway failed %s": "", + "Manual": "", + "Dynamic": "", + "Connecting to %s@%s": "", + "Connecting to Database %s": "", + "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": "", + "No route to host": "", + "network is unreachable": "" } \ No newline at end of file diff --git a/apps/i18n/koko/es.json b/apps/i18n/koko/es.json index 34433efd2..2c5a1bcd7 100644 --- a/apps/i18n/koko/es.json +++ b/apps/i18n/koko/es.json @@ -1,20 +1,45 @@ { + "\t%2d) Enter {{.GreenBoldColor}}%s{{.ColorEnd}} to %s.%s": "%d) Introduzca {{.GreenBoldColor}}%s{{.ColorEnd}} para %s.%s", + "%s approved": "%s Aprobado en la revisión.", + "%s node has no assets": "El nodo %s no tiene activos", + "%s protocol client not installed.": "El cliente del protocolo %s no está instalado", + "%s rejected": "Revisión rechazada", + "ACL reject": "El acceso se ha denegado en esta ocasión debido a las limitaciones de la política de control de acceso", + "Account <%s> and asset <%s> protocol are inconsistent.": "El usuario del sistema <%s> y el activo <%s> presentan un desacuerdo en el protocolo", "ActionPerm": "Permisos de acción", + "Address": "La dirección", "AlreadyExistsPleaseRename": "El archivo ya existe, por favor renombrar", + "Announcement: ": "Anuncio:", + "Authentication failed": "Autenticación fallida (nombre de usuario o contraseña incorrectos)", "AvailableShortcutKey": "Atajos disponibles", "Back": "Regresar", + "Back: B/b": "Regresar: B/b", "Cancel": "Cancelar", + "Cancel confirm": "Cancelar revisión de inicio de sesión", + "Cancel to login asset or max 3 retry": "Cancelar la sesión del activo o alcanzar 3 intentos", "CancelFileUpload": "Cancelar la subida del archivo", "CaseSensitive": "Distinguir mayúsculas de minúsculas", "Clone Connect": "Copiar ventana", "Close All Tabs": "Cerrar todo", "Close Current Tab": "Cerrar actual \nColor del tema \nSin dirección \nPegar \nTema \nCerrar todo \nMinuto \nUnirse a compartir \nHas sido removido de la sesión compartida \nIntroduce el nombre de usuario \nPor favor selecciona \nBuscar \nConfirmar \nCrear enlace de compartición \nSubir archivo", + "Command `%s` is forbidden": "El comando `%s` está prohibido ...", + "Comment": "Nota", "Confirm": "Confirmar", "ConfirmBtn": "Confirmar", "ConfirmDelete": "¿Está seguro de que desea eliminar este archivo?", "Connect": "Conectar", + "Connect idle more than %d minutes, disconnect": "Tiempo de inactividad excedido de %d minutos, desconectando", + "Connect with api server failed": "Fallo en la conexión con el servicio API", + "Connecting to %s@%s": "Comenzando a conectar a %s@%s", + "Connecting to Database %s": "Comenzando a conectar a la base de datos %s", + "Connecting to Kubernetes %s": "Comenzando a conectar con Kubernetes %s", + "Connecting to Kubernetes %s container %s": "Comenzando a conectar con el contenedor de Kubernetes %s en %s", + "Connection refused": "Red inalcanzable (conexión rechazada)", "CopyLink": "Copiar enlace y código de verificación", "CopyShareURLSuccess": "Dirección de compartición copiada con éxito", + "Core API failed": "Error en la API principal", + "Could copy website URL to notify reviewers: %s": "Dirección de auditoría copiables, notificar al auditor: %s", + "Create k8s client err: %s": "Error al crear cliente k8s: %s", "CreateFolder": "Crear carpeta", "CreateLink": "Crear enlace", "CreateSuccess": "Creación exitosa", @@ -27,10 +52,14 @@ "DownloadProgress": "Progreso de descarga", "DownloadSuccess": "Descarga exitosa", "Downloading": "Descargando", + "Dynamic": "Cuenta dinámica", "EndFileTransfer": "Transferencia de archivos finalizada", + "Enter ID number directly login, multiple search use // + field, such as: //16": "Consejo: Ingrese el ID del activo para iniciar sesión directamente; para una búsqueda secundaria, use // + campo, por ejemplo: //192", "ExceedTransferSize": "Superado el tamaño máximo de transferencia", "Expand": "Expandir", "ExpiredTime": "Fecha de validez", + "Face ACL is not supported yet. Please use the WebTerminal to connect the asset.": "Este terminal no soporta las reglas de acceso facial, por favor utilice el terminal web para iniciar sesión", + "Face verification is not supported yet. Please use the WebTerminal to connect the asset.": "Esta terminal no soporta la autenticación por reconocimiento facial; por favor inicie sesión a través de la terminal web.", "FailedCreateConnection": "Fallo al crear conexión", "FileAlreadyExists": "El archivo ya existe", "FileListError": "No se pudo obtener la información de la lista de archivos", @@ -41,10 +70,15 @@ "FileUploadInterrupted": "La subida del archivo se ha interrumpido", "Format": "Formato", "General": "General", + "Get auth password failed": "Fallo al obtener el token de autenticación", "GetFileManagerTokenTimeOut": "Tiempo de espera para obtener el token de gestión de archivos", "GetShareUser": "Introducir nombre de usuario", + "HandleTask does not support protocol %s, please use web terminal to access": "Este terminal no es compatible con el protocolo %s, utiliza la terminal web para iniciar sesión", + "Hostname": "Nombre del host", "Hotkeys": "Atajos", + "ID": "ID", "InputVerifyCode": "Por favor, ingrese el código de verificación", + "Invalid ID": "ID inválido", "JoinShare": "Unirse a la compartición", "JoinedWithSuccess": "Se ha unido con éxito", "KubernetesManagement": "Kubernetes gestión", @@ -53,41 +87,69 @@ "LeftArrow": "Flecha hacia atrás", "LinkAddr": "Dirección del enlace", "List": "Lista", + "Manual": "Cuenta manual", "MatchWholeWords": "Coincidencia exacta", "Minute": "Minutos", "Minutes": "Parte", + "Must be auto login account for %s": "Debe ser una cuenta de inicio de sesión automático %s", + "Must be unique account for %s": "Debe ser una cuenta única %s", + "Must be unique asset for %s": "debe ser un activo único %s", "MustOneFile": "Solo se puede seleccionar un archivo", "MustSelectOneFile": "Debe seleccionar un archivo", "Name": "Nombre", + "Need ACL review, continue? (y/n): ": "necesita auditoría, ¿continuar? (s/n):", + "Need ticket confirm to execute command, already send email to the reviewers": "Se necesita un comando de ticket para la revisión de la ejecución, se ha enviado un correo al revisor", + "Need ticket confirm to login, already send email to the reviewers": "Se requiere iniciar sesión mediante ticket para la revisión, correo enviado al auditor", "NewFolder": "Nueva carpeta", + "No Account found.": "Cuenta no encontrada", + "No Assets": "No hay activos", + "No Databases": "No hay base de datos", + "No found asset": "No se encontró un activo coincidente %s", + "No kubernetes": "No hay Kubernetes", + "No protocol found.": "Sin protocolo", + "No route to host": "Conexión de red no disponible (Enrutador inalcanzable)", "NoActiveTerminalTabFound": "No se encontró una pestaña de terminal activa", "NoData": "Sin datos", "NoLink": "Sin dirección", "NoRunningTerminalFound": "No se encontró ningún terminal en ejecución", + "Node: [ ID.Name(Asset amount) ]": "Nodos: [ ID. Nombre (Cantidad de activos) ]", "OnlineUser": "Usuarios en línea", "OperationSuccessful": "La acción se realizó con éxito", + "Organization": "Organización", "Owner": "Administrador", + "Page up: b\tPage down: n": "Página anterior: b Página siguiente: n", + "Page: %d, Count: %d, Total Page: %d, Total Count: %d": "Número de página: %d, número de filas por página: %d, número total de páginas: %d, cantidad total: %d", "Paste": "Pegar", "PauseSession": "Pausar esta sesión", "PermissionDenied": "Sin permiso", "PermissionExpired": "Los permisos han expirado", "PermissionValid": "Permisos válidos", + "Platform": "Plataforma", + "Please waiting for the reviewers to confirm command `%s`, cancel by CTRL+C or CTRL+D.": "Por favor, espere la revisión del revisor para el comando `%s`; cancele presionando CTRL+C o CTRL+D.", + "Please waiting for the reviewers to confirm, enter q to exit. ": "Esperando la revisión y confirmación del auditor, presione q y luego Enter para cancelar el inicio de sesión.", "PleaseInput": "Por favor, ingrese.", "PleaseInputVerifyCode": "Por favor, ingresa el código de verificación", "PrimaryUser": "Usuario principal", + "Protocol": "Protocolo", "ReadOnly": "Solo lectura", "Reconnect": "Reconectar", "Refresh": "Refrescar", + "Refresh done": "Actualización completada", "Remove": "Eliminar", "RemoveShareUser": "Has sido eliminado de la sesión compartida", "RemoveUser": "Eliminar usuario", "Rename": "Renombrar", "ResumeSession": "Restaurar esta sesión", + "Reuse SSH connections (%s@%s) [Number of connections: %d]": "Reutilizando conexión SSH (%s@%s) [Cantidad de conexiones: %d]", "RightArrow": "Flecha hacia adelante", "Search": "Buscar", + "Search: %s": "Buscar: %s", + "Select account exceed max retry times.": "Se ha superado el número máximo de intentos de selección de cuenta", + "Select protocol exceed max retry times.": "Se ha superado el número máximo de intentos para seleccionar el protocolo", "SelectAction": "Por favor selecciona", "SelectTheme": "Por favor, selecciona un tema", "Self": "Yo", + "Session max time reached, disconnect": "La sesión ha superado el tiempo máximo de conexión, desconectando", "SessionDetail": "Detalles de la conversación.", "SessionShare": "Compartir conversación", "Settings": "Ajustes", @@ -96,18 +158,32 @@ "ShareUser": "Compartir usuario", "ShareUserHelpText": "No se ha seleccionado un usuario, lo que permite la entrada de todos", "Size": "Tamaño", + "Start domain gateway failed %s": "Fallo al iniciar el gateway de la base de datos %s", + "Switch language successfully": "Cambio de idioma exitoso", + "Switched to %s": "Se ha cambiado a %s", "Sync": "Sincronizar", "SyncUserPreferenceFailed": "Falló la sincronización de ajustes", "SyncUserPreferenceSuccess": "Sincronización de ajustes exitosa", + "Terminal does not support protocol %s, please use web terminal to access": "Este terminal no soporta el protocolo %s, por favor inicie sesión a través del terminal web", "TerminalInstanceNotFound": "No se encontró una instancia de terminal para la pestaña actual.", "TerminalInstanceNotFoundForCurrentTab": "La pestaña actual no encontró una instancia de terminal", + "The command '%s' requires review. Continue or not [Y/n]?": "El comando %s necesita ser revisado, ¿continuar? [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]": "Su comando ejecutado presenta riesgos, se enviará una notificación de alerta al administrador. ¿Desea continuar? [S/N]", "TheCurrentTerminalInstanceWasNotFound": "No se encontró la instancia de terminal actual", "Theme": "Tema", "ThemeColors": "Color del tema", "ThemeConfig": "Tema", + "Ticket Reviewers: %s": "Revisor del ticket: %s", + "Tips: Enter asset[%s] account ID": "Sugerencia: Introduzca la ID de cuenta de los activos [%s]", + "Tips: Enter g+NodeID to display the host under the node, such as g1": "Sugerencia: ingrese g+ID del nodo para mostrar los hosts bajo el nodo, por ejemplo: g1", + "Tips: Enter protocol ID": "Sugerencia: Introduzca el ID del protocolo", + "Tips: To set a default language, go to Personal Settings → Preferences on Web": "Sugerencia: si deseas configurar el idioma predeterminado, dirígete a la web en \"Configuración personal → Preferencias\"", + "Tips: switch language by ID (Current session only)": "Sugerencia: ingrese el ID para cambiar el idioma", "Transfer": "Transmisión", "Type": "Tipo", "UnableToGenerateWebSocketURL": "No se puede generar la URL de WebSocket, faltan parámetros", + "Unknown error code: %s, detail: %s": "Código de error desconocido: %s, detalles: %s", + "Unknown status": "Estado desconocido", "UpArrow": "Flecha hacia arriba", "Upload": "Subir", "UploadEnd": "La subida ha finalizado, por favor espera el procesamiento posterior", @@ -117,11 +193,35 @@ "UploadTips": "Arrastra el archivo aquí, o haz clic para subir", "UploadTitle": "Subir archivo", "User": "Usuario", + "Username": "Nombre de usuario", "UsingRegularExpressions": "Usar expresiones regulares", "VerifyCode": "Código de verificación.", "WaitFileTransfer": "Esperando que finalice la transferencia de archivos", "Warning": "Advertencia", "WebSocketClosed": "WebSocket cerrado", "WebSocketConnectionIsClosedHelpText": "La conexión WebSocket se ha cerrado, por favor actualiza la página o reconéctate.", - "Writable": "Se puede escribir" + "Welcome to use JumpServer open source fortress system": "Bienvenido al sistema de bastión de código abierto JumpServer", + "Writable": "Se puede escribir", + "You don't have permission login %s": "No tiene autorización para iniciar sesión en %s", + "You get auth token failed": "Ha fallado la obtención del token de autenticación", + "display the assets you have permission": "Mostrar los activos a los que tiene acceso", + "display the databases that you have permission": "Mostrar las bases de datos a las que tiene acceso", + "display the hosts that you have permission": "Mostrar los hosts a los que tiene acceso", + "display the kubernetes that you have permission": "Mostrar los Kubernetes a los que tiene acceso", + "display the node that you have permission": "Mostrar los nodos a los que tiene acceso", + "exit": "Salir", + "get connect token err": "Error al obtener el token de conexión", + "have no permission to download file": "Sin permiso para descargar archivos", + "have no permission to upload file": "Sin permiso para subir archivos", + "i/o timeout": "Conexión de red no disponible (Tiempo de conexión agotado)", + "language switch": "Cambio de idioma", + "network is unreachable": "Conexión de red fallida (red inalcanzable)", + "not found matched username %s": "No se encontró un nombre de usuario coincide %s.", + "part IP, Hostname, Comment": "Parte de IP, nombre de host, nota", + "part IP,, Hostname, Comment": "/ + IP, nombre del host, nota", + "print help": "Mostrar ayuda", + "refresh your assets and nodes": "Actualizando la información más reciente de máquinas y nodos", + "select one asset to login": "Selecciona uno de los activos para iniciar sesión", + "to search login if unique": "Buscar inicio de sesión (si es único)", + "to search, such as: /192.168": "Buscar, por ejemplo: /192.168" } \ No newline at end of file diff --git a/apps/i18n/koko/ja.json b/apps/i18n/koko/ja.json index ab30d49b1..06090377c 100644 --- a/apps/i18n/koko/ja.json +++ b/apps/i18n/koko/ja.json @@ -1,20 +1,45 @@ { + "\t%2d) Enter {{.GreenBoldColor}}%s{{.ColorEnd}} to %s.%s": "%d) {{.GreenBoldColor}}%s{{.ColorEnd}} を入力して%s.%sを実行してください。", + "%s approved": "%s 承認されました", + "%s node has no assets": "%sノードに資産がありません", + "%s protocol client not installed.": "%s プロトコルのクライアントがインストールされていません。", + "%s rejected": "審査拒否", + "ACL reject": "今回のログインは拒否されました。理由はアクセス制御ポリシーによる制限です", + "Account <%s> and asset <%s> protocol are inconsistent.": "システムユーザー<%s>と資産<%s>の協定が一致しません", "ActionPerm": "操作権限", + "Address": "アドレス", "AlreadyExistsPleaseRename": "ファイルは既に存在します。名前を変更してください", + "Announcement: ": "お知らせ:", + "Authentication failed": "認証に失敗しました(ユーザー名またはパスワードが間違っています)。", "AvailableShortcutKey": "使用可能なショートカット", "Back": "戻る", + "Back: B/b": "戻る:B/b", "Cancel": "キャンセル", + "Cancel confirm": "ログインの確認をキャンセル", + "Cancel to login asset or max 3 retry": "資産のログインをキャンセルするか、3回の再試行を行う。", "CancelFileUpload": "ファイルアップロードをキャンセルする", "CaseSensitive": "大文字と小文字を区別", "Clone Connect": "ウィンドウをコピー", "Close All Tabs": "すべてを閉じる", "Close Current Tab": "現在を閉じる", + "Command `%s` is forbidden": "コマンド `%s` は禁止されています ...", + "Comment": "備考", "Confirm": "確認", "ConfirmBtn": "確定", "ConfirmDelete": "このファイルを削除してもよろしいですか?", "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": "リンクと認証コードのコピー", "CopyShareURLSuccess": "レプリケーション共有住所成功", + "Core API failed": "Core APIにエラーが発生しました", + "Could copy website URL to notify reviewers: %s": "コピー可能な監査アドレス、監査人に通知:%s", + "Create k8s client err: %s": "k8s クライアントエラーの作成:%s", "CreateFolder": "フォルダーを作成", "CreateLink": "リンクを作成する", "CreateSuccess": "作成に成功しました", @@ -27,10 +52,14 @@ "DownloadProgress": "ダウンロード進捗", "DownloadSuccess": "ダウンロードに成功しました", "Downloading": "ダウンロード中", + "Dynamic": "動的アカウント", "EndFileTransfer": "ファイル転送終了", + "Enter ID number directly login, multiple search use // + field, such as: //16": "ヒント:資産IDを入力して直接ログイン、二次検索には // + フィールドを使用します。例://192", "ExceedTransferSize": "最大転送サイズを超えています", "Expand": "展開", "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.": "この端末は顔認識認証をサポートしていません。ウェブ端末を使用してログインしてください。", "FailedCreateConnection": "接続の作成に失敗しました", "FileAlreadyExists": "ファイルは既に存在します", "FileListError": "ファイルリスト情報の取得に失敗しました", @@ -41,10 +70,15 @@ "FileUploadInterrupted": "ファイルアップロードが中断されました", "Format": "フォーマット", "General": "汎用", + "Get auth password failed": "認証トークンの取得に失敗しました", "GetFileManagerTokenTimeOut": "ファイル管理トークンの取得がタイムアウトしました", "GetShareUser": "ユーザー名の入力", + "HandleTask does not support protocol %s, please use web terminal to access": "この端末は %s プロトコルをサポートしていません。Web端末でログインしてください", + "Hostname": "ホスト名", "Hotkeys": "ショートカットキー", + "ID": "ID", "InputVerifyCode": "認証コードを入力してください", + "Invalid ID": "無効なID", "JoinShare": "共有セッションに参加", "JoinedWithSuccess": "正常に参加しました", "KubernetesManagement": "Kubernetes 管理", @@ -53,41 +87,69 @@ "LeftArrow": "戻る矢印", "LinkAddr": "リンクのアドレス", "List": "リスト", + "Manual": "手動アカウント", "MatchWholeWords": "完全一致", "Minute": "分", "Minutes": "分", + "Must be auto login account for %s": "自動ログインアカウントである必要があります %s", + "Must be unique account for %s": "唯一のアカウントである必要があります %s", + "Must be unique asset for %s": "は一意の資産でなければなりません %s", "MustOneFile": "ファイルを1つだけ選択できます", "MustSelectOneFile": "ファイルを選択する必要があります", "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": "新しいフォルダー", + "No Account found.": "アカウントが見つかりません", + "No Assets": "資産がありません", + "No Databases": "データベースがありません", + "No found asset": "一致する資産が見つかりません %s", + "No kubernetes": "kubernetesがありません", + "No protocol found.": "プロトコルがありません。", + "No route to host": "ネットワーク不通(ルーティング不通)", "NoActiveTerminalTabFound": "アクティブな端末タブが見つかりませんでした", "NoData": "データがありません", "NoLink": "住所なし", "NoRunningTerminalFound": "実行中のターミナルが見つかりませんでした", + "Node: [ ID.Name(Asset amount) ]": "ノード:[ ID.名前(資産数) ]", "OnlineUser": "オンラインユーザー", "OperationSuccessful": "操作成功", + "Organization": "組織", "Owner": "管理者", + "Page up: b\tPage down: n": "前のページ:b 次のページ:n", + "Page: %d, Count: %d, Total Page: %d, Total Count: %d": "ページ番号:%d、1ページの行数:%d、総ページ数:%d、総数:%d", "Paste": "貼り付け", "PauseSession": "セッションを一時停止", "PermissionDenied": "権限がありません", "PermissionExpired": "許可が期限切れになりました", "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": "入力してください", "PleaseInputVerifyCode": "验证码を入力してください", "PrimaryUser": "主要ユーザー", + "Protocol": "プロトコル", "ReadOnly": "読み取り専用", "Reconnect": "再接続", "Refresh": "リフレッシュ", + "Refresh done": "更新完了", "Remove": "削除", "RemoveShareUser": "あなたはすでに共有セッションから削除されました」という意味です", "RemoveUser": "ユーザーを削除", "Rename": "再命名", "ResumeSession": "セッションを再開", + "Reuse SSH connections (%s@%s) [Number of connections: %d]": "SSH接続を再利用中(%s@%s)[接続数: %d]", "RightArrow": "進む矢印", "Search": "検索", + "Search: %s": "検索:%s", + "Select account exceed max retry times.": "アカウントの選択が最大リトライ回数を超えました。", + "Select protocol exceed max retry times.": "選択したプロトコルが最大リトライ回数を超えました", "SelectAction": "選択してください", "SelectTheme": "テーマを選択してください", "Self": "自分", + "Session max time reached, disconnect": "セッションが最大接続時間を超え、接続が切断されました", "SessionDetail": "会話の詳細", "SessionShare": "会話を共有", "Settings": "設定", @@ -96,18 +158,32 @@ "ShareUser": "共有ユーザー", "ShareUserHelpText": "ユーザーが選択されていません。つまり、すべての人が参加できます。", "Size": "サイズ", + "Start domain gateway failed %s": "データベースゲートウェイの起動に失敗しました %s \n最新のマシンとノード情報を刷新しています \nコマンド %s の再確認が必要です。続行しますか?[Y/N] \n検索: /192.168 \nネットワークが接続できません(ネットワークに到達できません) \nデータベースが存在しません \nあなたが権限を持つデータベースを表示します \n%s@%s に接続を開始しています \nあなたが権限を持つKubernetesを表示します \n更新が完了しました \nノード:[ ID.名称(資産数量) ] \n言語の切り替えに成功しました \nプロトコルの選択が最大再試行回数を超えました \nアイドル時間が%d分を超えたため、接続が切断されました \nヒント:g+ノードID を入力すると、そのノードの主機を表示します。例: g1", + "Switch language successfully": "言語の切り替えが成功しました", + "Switched to %s": "%sに切り替えました。", "Sync": "同期", "SyncUserPreferenceFailed": "ユーザー設定の同期に失敗しました", "SyncUserPreferenceSuccess": "ユーザー設定の同期に成功しました", + "Terminal does not support protocol %s, please use web terminal to access": "この端末は %s プロトコルをサポートしていません。ウェブ端末を使用してログインしてください。", "TerminalInstanceNotFound": "現在のタブのターミナルインスタンスが見つかりませんでした", "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": "現在のターミナルインスタンスが見つかりませんでした", "Theme": "テーマ", "ThemeColors": "テーマカラー", "ThemeConfig": "テーマ", + "Ticket Reviewers: %s": "チケットレビュアー:%s", + "Tips: Enter asset[%s] account ID": "提示:入力された資産[%s]のアカウントID←SEP→ページ番号:%d、1ページあたりの行数:%d、総ページ数:%d、総数量:%d←SEP→審査者の確認をお待ちしています。qを押してログインをキャンセルします。←SEP→ネットワーク通信異常(接続タイムアウト)←SEP→ネットワーク通信異常(ルーター接続不可)←SEP→APIサービスへの接続に失敗しました←SEP→ヘルプを表示←SEP→プラットフォーム←SEP→ファイルのダウンロード権限がありません←SEP→%s 承認されました", + "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": "伝送", "Type": "タイプ", "UnableToGenerateWebSocketURL": "WebSocket URLを生成できません。パラメータが不足しています", + "Unknown error code: %s, detail: %s": "不明なエラーコード:%s、詳細:%s", + "Unknown status": "不明な状態", "UpArrow": "上向き矢印", "Upload": "アップロード", "UploadEnd": "アップロードが完了しました。後の処理をお待ちください", @@ -117,11 +193,35 @@ "UploadTips": "ファイルをここにドラッグするか、アップロードをクリックします", "UploadTitle": "ファイルのアップロード", "User": "ユーザー", + "Username": "ユーザー名", "UsingRegularExpressions": "正規表現を使用", "VerifyCode": "認証コード", "WaitFileTransfer": "ファイル転送終了待ち", "Warning": "警告", "WebSocketClosed": "WebSocket 閉店", "WebSocketConnectionIsClosedHelpText": "WebSocket接続が閉じられました。ページをリフレッシュするか、再接続してください。", - "Writable": "作成" + "Welcome to use JumpServer open source fortress system": "JumpServerオープンソースバリケードシステムへようこそ", + "Writable": "作成", + "You don't have permission login %s": "あなたは%sにログインする権限がありません", + "You get auth token failed": "認証トークンの取得に失敗しました", + "display the assets you have permission": "あなたが権限を持つ資産を表示", + "display the databases that you have permission": "あなたが権限を持っているデータベースを表示します", + "display the hosts that you have permission": "あなたが権限を持つホストを表示します。", + "display the kubernetes that you have permission": "あなたが権限を持っているKubernetesを表示します", + "display the node that you have permission": "あなたが権限を持つノードを表示", + "exit": "終了", + "get connect token err": "接続トークンの取得に失敗しました", + "have no permission to download file": "ファイルをダウンロードする権限がありません", + "have no permission to upload file": "ファイルのアップロード権限がありません。", + "i/o timeout": "ネットワークが接続できません(タイムアウト)", + "language switch": "言語切替", + "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" } \ No newline at end of file diff --git a/apps/i18n/koko/ko.json b/apps/i18n/koko/ko.json index 3d41dbaf3..836dd0380 100644 --- a/apps/i18n/koko/ko.json +++ b/apps/i18n/koko/ko.json @@ -1,20 +1,45 @@ { + "\t%2d) Enter {{.GreenBoldColor}}%s{{.ColorEnd}} to %s.%s": "%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": "작업 권한", + "Address": "주소", "AlreadyExistsPleaseRename": "파일이 이미 존재합니다, 이름을 변경해 주세요", + "Announcement: ": "공지사항:", + "Authentication failed": "인증 실패(사용자 이름 또는 비밀번호 오류)", "AvailableShortcutKey": "사용 가능한 단축키", "Back": "돌아가기", + "Back: B/b": "반환: B/b", "Cancel": "취소", + "Cancel confirm": "로그인 검토를 취소합니다", + "Cancel to login asset or max 3 retry": "자산 로그인을 취소하거나 3회 재시도에 도달", "CancelFileUpload": "파일 업로드 취소", "CaseSensitive": "대소문자 구분", "Clone Connect": "복사 창", "Close All Tabs": "모두 닫기", "Close Current Tab": "현재 닫기", + "Command `%s` is forbidden": "명령 `%s` 는 금지되었습니다 ...", + "Comment": "비고", "Confirm": "확인", "ConfirmBtn": "확인", "ConfirmDelete": "이 파일을 삭제하시겠습니까?", "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": "링크 및 인증 코드 복사", "CopyShareURLSuccess": "공유 주소 복사 성공", + "Core API failed": "Core API에서 오류 발생", + "Could copy website URL to notify reviewers: %s": "복사 가능한 감사 주소, 감사인에게 통지: %s", + "Create k8s client err: %s": "k8s 클라이언트 오류 생성: %s", "CreateFolder": "폴더 생성", "CreateLink": "링크 생성", "CreateSuccess": "생성이 성공적으로 완료되었습니다", @@ -27,10 +52,14 @@ "DownloadProgress": "다운로드 진행 상황", "DownloadSuccess": "다운로드 성공", "Downloading": "다운로드 중", + "Dynamic": "동적 계정", "EndFileTransfer": "파일 전송 종료", + "Enter ID number directly login, multiple search use // + field, such as: //16": "提示:자산 ID를 입력하여 직접 로그인하십시오. 2차 검색은 // + 필드를 사용하십시오. 예: //192", "ExceedTransferSize": "최대 전송 크기를 초과했습니다", "Expand": "펼치기", "ExpiredTime": "유효 기간", + "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": "연결 생성 실패", "FileAlreadyExists": "파일이 이미 존재합니다", "FileListError": "파일 목록 정보 가져오기 실패", @@ -41,10 +70,15 @@ "FileUploadInterrupted": "파일 업로드 중단", "Format": "형식", "General": "일반", + "Get auth password failed": "인증 토큰을 가져오는 데 실패했습니다", "GetFileManagerTokenTimeOut": "파일 관리 토큰을 얻는 데 시간 초과", "GetShareUser": "사용자 이름 입력", + "HandleTask does not support protocol %s, please use web terminal to access": "해당 단말기는 %s 프로토콜을 지원하지 않습니다, 웹 단말기로 로그인해 주십시오", + "Hostname": "호스트 이름", "Hotkeys": "단축키", + "ID": "아이디", "InputVerifyCode": "인증 코드를 입력하세요", + "Invalid ID": "유효하지 않은 ID", "JoinShare": "공유에 가입", "JoinedWithSuccess": "성공적으로 가입되었습니다", "KubernetesManagement": "Kubernetes 관리", @@ -53,41 +87,69 @@ "LeftArrow": "뒤로 화살표", "LinkAddr": "링크 주소", "List": "목록", + "Manual": "수동 계정", "MatchWholeWords": "전체 단어 일치", "Minute": "분", "Minutes": "분", + "Must be auto login account for %s": "필수적으로 자동 로그인 계정 %s", + "Must be unique account for %s": "필수적으로 유일한 계정 %s", + "Must be unique asset for %s": "자산 %s는 반드시 고유해야 합니다", "MustOneFile": "하나의 파일만 선택할 수 있습니다", "MustSelectOneFile": "파일 하나를 선택해야 합니다", "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": "새 폴더 만들기", + "No Account found.": "계정이 발견되지 않음", + "No Assets": "자산이 없습니다", + "No Databases": "데이터베이스 없음", + "No found asset": "일치하는 자산을 찾을 수 없습니다 %s", + "No kubernetes": "kubernetes가 없습니다", + "No protocol found.": "프로토콜 없음", + "No route to host": "네트워크가 연결되지 않음 (라우터 연결 실패)", "NoActiveTerminalTabFound": "활성 터미널 탭을 찾을 수 없음", "NoData": "데이터 없음", "NoLink": "주소 없음", "NoRunningTerminalFound": "실행 중인 터미널을 찾을 수 없습니다", + "Node: [ ID.Name(Asset amount) ]": "노드: [ ID.이름(자산 수량) ]", "OnlineUser": "온라인 사용자", "OperationSuccessful": "작업 성공", + "Organization": "조직이 검토가 필요합니다. 계속하시겠습니까? (y/n): 당신이 실행한 명령은 위험이 존재합니다. 경고 알림이 관리자에게 전송됩니다. 계속하시겠습니까? [Y/N] 팁: ID를 입력하여 언어를 전환하세요. 이전 페이지: b 다음 페이지: n 시스템 사용자 <%s>와 자산 <%s>의 프로토콜이 일치하지 않습니다. 세션이 최대 연결 시간을 초과하여 연결이 끊어졌습니다. %s에 로그인할 권한이 없습니다. 계정이 발견되지 않았습니다. 자산이 없습니다. 이번 로그인은 접근 제어 정책의 제한으로 인해 거부되었습니다. 작업 명령 실행 검토가 필요하며, 검토자에게 이메일이 발송되었습니다. 해당 단말기는 얼굴 인식 규칙을 지원하지 않으므로 웹 단말기를 통해 로그인해 주세요. 로그인 검토를 취소하시겠습니까? %s로 전환되었습니다.", "Owner": "관리자", + "Page up: b\tPage down: n": "이전 페이지: b 다음 페이지: n", + "Page: %d, Count: %d, Total Page: %d, Total Count: %d": "페이지 번호: %d, 매 페이지 행 수: %d, 총 페이지 수: %d, 총 수량: %d", "Paste": "붙여넣기", "PauseSession": "이번 대화 일시 중지", "PermissionDenied": "권한 없음", "PermissionExpired": "권한이 만료되었습니다", "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": "입력해 주세요.", "PleaseInputVerifyCode": "입력한 인증 코드", "PrimaryUser": "주 사용자", + "Protocol": "프로토콜", "ReadOnly": "읽기 전용", "Reconnect": "재연결", "Refresh": "새로 고침", + "Refresh done": "새로 고침이 완료되었습니다", "Remove": "제거", "RemoveShareUser": "귀하가 공유 세션에서 제거되었습니다", "RemoveUser": "사용자 제거", "Rename": "이름 변경", "ResumeSession": "이 세션을 복원하시겠습니까?", + "Reuse SSH connections (%s@%s) [Number of connections: %d]": "SSH 연결 재사용 ( %s@%s ) [연결 수: %d]", "RightArrow": "앞으로 화살표", "Search": "검색", + "Search: %s": "검색: %s", + "Select account exceed max retry times.": "계정 선택이 최대 재시도 횟수를 초과했습니다", + "Select protocol exceed max retry times.": "프로토콜 선택이 최대 재시도 횟수를 초과했습니다", "SelectAction": "선택하십시오", "SelectTheme": "주제를 선택하세요", "Self": "나", + "Session max time reached, disconnect": "세션이 최대 연결 시간을 초과하여 연결이 끊겼습니다", "SessionDetail": "대화 상세 내용", "SessionShare": "세션 공유", "Settings": "설정", @@ -96,18 +158,32 @@ "ShareUser": "공유 사용자", "ShareUserHelpText": "사용자가 선택되지 않았습니다, 모든 사람이 참여할 수 있습니다", "Size": "크기", + "Start domain gateway failed %s": "데이터베이스 게이트웨이 시작 실패 %s \n최신 머신 및 노드 정보 새로 고침 \n명령 %s를 재검토해야 합니다. 계속하시겠습니까? [Y/N] \n검색, 예: /192.168 \n네트워크 불통 (네트워크에 도달할 수 없음) \n데이터베이스 없음 \n당신이 권한을 가진 데이터베이스 표시 \n%s@%s에 연결을 시작합니다 \n당신이 권한을 가진 Kubernetes 표시 \n새로 고침 완료 \n노드: [ ID.이름(자산 수) ] \n언어 전환 성공 \n프로토콜 선택이 최대 재시도 횟수를 초과했습니다 \n유휴 시간이 %d분을 초과하여 연결이 끊겼습니다 \n提示: g+노드ID를 입력하여 노드 아래의 호스트를 표시합니다. 예: g1", + "Switch language successfully": "언어 전환이 성공적으로 완료되었습니다", + "Switched to %s": "%s로 전환되었습니다", "Sync": "동기화", "SyncUserPreferenceFailed": "동기화 설정 실패", "SyncUserPreferenceSuccess": "동기화 설정 성공", + "Terminal does not support protocol %s, please use web terminal to access": "해당 단말은 %s 프로토콜을 지원하지 않습니다. 웹 단말로 로그인하십시오", "TerminalInstanceNotFound": "현재 탭의 터미널 인스턴스를 찾을 수 없습니다.", "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": "현재 터미널 인스턴스를 찾을 수 없습니다.", "Theme": "주제", "ThemeColors": "테마 색상", "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": "팁: 기본 언어 설정이 필요하시면 웹에서 「개인 설정 → 선호 설정」으로 가십시오", + "Tips: switch language by ID (Current session only)": "提示: ID 입력하여 언어 전환", "Transfer": "전송", "Type": "유형", "UnableToGenerateWebSocketURL": "WebSocket URL을 생성할 수 없습니다, 파라미터가 부족합니다", + "Unknown error code: %s, detail: %s": "알 수 없는 오류 코드: %s, 자세한 내용: %s", + "Unknown status": "알 수 없는 상태", "UpArrow": "위쪽 화살표", "Upload": "업로드", "UploadEnd": "업로드가 완료되었습니다. 후속 처리를 기다려 주십시오.", @@ -117,11 +193,35 @@ "UploadTips": "파일을 여기로 드래그하거나 업로드를 클릭하세요", "UploadTitle": "파일 업로드", "User": "사용자", + "Username": "사용자 이름", "UsingRegularExpressions": "정규 표현식 사용", "VerifyCode": "인증 코드", "WaitFileTransfer": "파일 전송 완료 대기", "Warning": "경고", "WebSocketClosed": "WebSocket이 닫혔습니다", "WebSocketConnectionIsClosedHelpText": "WebSocket 연결이 종료되었습니다, 페이지를 새로 고치거나 다시 연결하세요.", - "Writable": "작성 가능" + "Welcome to use JumpServer open source fortress system": "JumpServer 오픈 소스 방화벽 시스템에 오신 것을 환영합니다", + "Writable": "작성 가능", + "You don't have permission login %s": "%s에 로그인할 권한이 없습니다", + "You get auth token failed": "인증 토큰을 받는 데 실패했습니다", + "display the assets you have permission": "당신이 권한을 가진 자산을 표시", + "display the databases that you have permission": "당신이 권한을 가진 데이터베이스 표시", + "display the hosts that you have permission": "귀하가 권한이 있는 호스트를 표시합니다", + "display the kubernetes that you have permission": "당신이 권한을 가진 Kubernetes 표시", + "display the node that you have permission": "당신이 권한을 가진 노드를 표시", + "exit": "로그아웃", + "get connect token err": "연결 토큰을 가져오는 데 오류가 발생했습니다.
%s 노드에 자산이 없습니다.
인증 토큰을 가져오지 못했습니다.
주소는
고유한 자산이어야 합니다: %s
ID:
%d) {{.GreenBoldColor}}%s{{.ColorEnd}}를 입력하여 %s.%s을(를) 진행하세요.
자산의 로그인 취소 또는 3회 재시도를 초과했습니다.
티켓 검토자: %s
Core API에서 오류가 발생했습니다.
힌트: 프로토콜 ID를 입력하세요.
Kubernetes가 없습니다.
검토자가 명령 `%s`를 검토할 때까지 기다리세요. 종료하려면 CTRL+C 또는 CTRL+D를 누르십시오.
JumpServer 오픈소스 방화벽 시스템에 오신 것을 환영합니다.
이 터미널은 얼굴 인식 인증을 지원하지 않으므로 웹 터미널을 통해 로그인하시기 바랍니다.", + "have no permission to download file": "파일 다운로드 권한 없음", + "have no permission to upload file": "파일 업로드 권한이 없음", + "i/o timeout": "네트워크가 연결되지 않음 (연결 시간 초과)", + "language switch": "언어 전환", + "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" } \ No newline at end of file diff --git a/apps/i18n/koko/pt_br.json b/apps/i18n/koko/pt_br.json index 0a34e2abd..cb7d1c867 100644 --- a/apps/i18n/koko/pt_br.json +++ b/apps/i18n/koko/pt_br.json @@ -1,20 +1,45 @@ { + "\t%2d) Enter {{.GreenBoldColor}}%s{{.ColorEnd}} to %s.%s": "%d) Digite {{.GreenBoldColor}}%s{{.ColorEnd}} para %s.%s", + "%s approved": "%s Revisão aprovada.", + "%s node has no assets": "O nó %s não possui ativos", + "%s protocol client not installed.": "O cliente do protocolo %s não está instalado", + "%s rejected": "Rejeição da auditoria", + "ACL reject": "O login foi negado desta vez, devido a uma limitação da política de controle de acesso", + "Account <%s> and asset <%s> protocol are inconsistent.": "O usuário do sistema <%s> e o ativo <%s> têm um acordo inconsistente", "ActionPerm": "Permissão de Ação", + "Address": "O endereço", "AlreadyExistsPleaseRename": "o arquivo já existe, por favor renomeie", + "Announcement: ": "Anúncio:", + "Authentication failed": "Falha de autenticação (nome de usuário ou senha incorretos)", "AvailableShortcutKey": "Atalhos disponíveis", "Back": "Voltar", + "Back: B/b": "Retorno: B/b", "Cancel": "Cancelar", + "Cancel confirm": "Cancelar revisão de login", + "Cancel to login asset or max 3 retry": "Cancela o login no ativo ou atinge 3 tentativas", "CancelFileUpload": "Cancelar upload de arquivo", "CaseSensitive": "Diferenciar maiúsculas de minúsculas", "Clone Connect": "Copiar janela", "Close All Tabs": "Fechar tudo", "Close Current Tab": "Fechar a atual", + "Command `%s` is forbidden": "O comando `%s` está proibido ...", + "Comment": "Observações", "Confirm": "Confirmar", "ConfirmBtn": "Confirmar", "ConfirmDelete": "Você tem certeza de que deseja excluir este arquivo?", "Connect": "Conectar", + "Connect idle more than %d minutes, disconnect": "Tempo ocioso superior a %d minutos, conexão encerrada", + "Connect with api server failed": "Falha ao conectar ao serviço API", + "Connecting to %s@%s": "Iniciando conexão com %s@%s", + "Connecting to Database %s": "Iniciando a conexão com o banco de dados %s", + "Connecting to Kubernetes %s": "Iniciando conexão com Kubernetes %s", + "Connecting to Kubernetes %s container %s": "Iniciando conexão com o Kubernetes %s container %s", + "Connection refused": "Rede indisponível (conexão recusada)", "CopyLink": "Copiar link e código", "CopyShareURLSuccess": "Cópia de endereço compartilhado bem sucedida", + "Core API failed": "Ocorreu um erro na API Core", + "Could copy website URL to notify reviewers: %s": "Endereço de auditoria copiável, notificar auditor: %s", + "Create k8s client err: %s": "Erro ao criar cliente k8s: %s", "CreateFolder": "criar pasta", "CreateLink": "Criar link", "CreateSuccess": "Criado com sucesso", @@ -27,10 +52,14 @@ "DownloadProgress": "Progresso do download", "DownloadSuccess": "Download bem-sucedido", "Downloading": "Baixando", + "Dynamic": "Conta dinâmica", "EndFileTransfer": "Transferência de arquivo concluída", + "Enter ID number directly login, multiple search use // + field, such as: //16": "Dica: insira o ID do ativo para login direto, a pesquisa secundária utiliza // + campo, como: //192", "ExceedTransferSize": "Excede o tamanho máximo de transferência", "Expand": "Expandir", "ExpiredTime": "Prazo de validade", + "Face ACL is not supported yet. Please use the WebTerminal to connect the asset.": "Este terminal não suporta regras de acesso por reconhecimento facial, por favor use o terminal web para fazer login", + "Face verification is not supported yet. Please use the WebTerminal to connect the asset.": "Este terminal não suporta autenticação por reconhecimento facial, por favor, utilize o terminal web para login.", "FailedCreateConnection": "Falha ao criar conexão", "FileAlreadyExists": "arquivo já existe", "FileListError": "Falha ao obter informações da lista de arquivos", @@ -41,10 +70,15 @@ "FileUploadInterrupted": "Upload de arquivo interrompido", "Format": "Formato", "General": "Geral", + "Get auth password failed": "Falha ao obter o token de autenticação", "GetFileManagerTokenTimeOut": "Tempo limite na obtenção do Token de gerenciamento de arquivo", "GetShareUser": "Digite o nome de usuário", + "HandleTask does not support protocol %s, please use web terminal to access": "Este terminal não suporta o protocolo %s, por favor utilize o terminal web para logar", + "Hostname": "Nome do host", "Hotkeys": "Atalhos", + "ID": "ID", "InputVerifyCode": "Por favor, insira o código de verificação", + "Invalid ID": "ID inválido", "JoinShare": "Junte-se ao compartilhamento", "JoinedWithSuccess": "Adicionado com sucesso", "KubernetesManagement": "Kubernetes gerenciar", @@ -53,41 +87,69 @@ "LeftArrow": "Seta para trás", "LinkAddr": "Endereço do link", "List": "Lista", + "Manual": "Conta manual", "MatchWholeWords": "Correspondência exata", "Minute": "minutos", "Minutes": "minutos", + "Must be auto login account for %s": "Deve ser uma conta de login automático %s", + "Must be unique account for %s": "Deve ser uma conta única %s", + "Must be unique asset for %s": "deve ser um ativo único %s", "MustOneFile": "Só pode escolher um arquivo", "MustSelectOneFile": "É necessário selecionar um arquivo", "Name": "Nome", + "Need ACL review, continue? (y/n): ": "precisa de auditoria, continuar? (s/n):", + "Need ticket confirm to execute command, already send email to the reviewers": "A execução da ordem de revisão requer um comando, um e-mail foi enviado ao revisor", + "Need ticket confirm to login, already send email to the reviewers": "Revisão de login de serviço necessário, auditor notificado por e-mail", "NewFolder": "Criar nova pasta", + "No Account found.": "Nenhuma conta encontrada", + "No Assets": "Nenhum ativo", + "No Databases": "Sem banco de dados", + "No found asset": "Ativo correspondente não encontrado %s", + "No kubernetes": "Não há kubernetes", + "No protocol found.": "Nenhum protocolo", + "No route to host": "Rede indisponível (roteador inoperante)", "NoActiveTerminalTabFound": "Não foi encontrada a guia do terminal ativo", "NoData": "Sem dados", "NoLink": "Sem endereço", "NoRunningTerminalFound": "Terminal em execução não encontrado", + "Node: [ ID.Name(Asset amount) ]": "Nós: [ ID.Nome(Quantidade de ativos) ]", "OnlineUser": "Usuários online", "OperationSuccessful": "Ação bem-sucedida", + "Organization": "Organização", "Owner": "Administrador", + "Page up: b\tPage down: n": "Página anterior: b Próxima página: n", + "Page: %d, Count: %d, Total Page: %d, Total Count: %d": "Número da página: %d, linhas por página: %d, total de páginas: %d, quantidade total: %d", "Paste": "Colar", "PauseSession": "Pausar esta sessão", "PermissionDenied": "Sem permissão", "PermissionExpired": "Permissão expirada", "PermissionValid": "Permissão válida", + "Platform": "Plataforma", + "Please waiting for the reviewers to confirm command `%s`, cancel by CTRL+C or CTRL+D.": "Aguarde a revisão do revisor do comando `%s`, cancele pressionando CTRL+C ou CTRL+D.", + "Please waiting for the reviewers to confirm, enter q to exit. ": "Aguardando a confirmação de revisão do avaliador, pressione q e enter para cancelar o login.", "PleaseInput": "Por favor, insira.", "PleaseInputVerifyCode": "Por favor, insira o código de verificação", "PrimaryUser": "Usuário principal", + "Protocol": "Protocolo", "ReadOnly": "somente leitura", "Reconnect": "Reconectar", "Refresh": "Atualizar", + "Refresh done": "Atualização concluída", "Remove": "Remover", "RemoveShareUser": "Você foi removido da sessão compartilhada", "RemoveUser": "Remover usuário", "Rename": "Renomear", "ResumeSession": "Restaurar esta sessão", + "Reuse SSH connections (%s@%s) [Number of connections: %d]": "Reutilizando conexão SSH (%s@%s) [Número de conexões: %d]", "RightArrow": "Seta para frente", "Search": "Pesquisar", + "Search: %s": "Pesquisar: %s", + "Select account exceed max retry times.": "Número de contas selecionadas excede o número máximo de tentativas", + "Select protocol exceed max retry times.": "Número máximo de tentativas de protocolo excedido", "SelectAction": "Por favor, selecione", "SelectTheme": "Por favor, selecione um tema", "Self": "Eu", + "Session max time reached, disconnect": "A sessão excedeu o tempo máximo de conexão, desconectando", "SessionDetail": "Detalhes da conversa", "SessionShare": "Compartilhamento de conversa", "Settings": "Configurações", @@ -96,18 +158,32 @@ "ShareUser": "usuários de compartilhamento", "ShareUserHelpText": "Sem usuário selecionado, permitindo que todos se juntem", "Size": "Tamanho", + "Start domain gateway failed %s": "Falha ao iniciar o gateway do banco de dados %s", + "Switch language successfully": "Mudança de idioma bem-sucedida", + "Switched to %s": "Alterado para %s", "Sync": "Sincronizar", "SyncUserPreferenceFailed": "Falha na configuração de sincronização", "SyncUserPreferenceSuccess": "Configurações sincronizadas com sucesso", + "Terminal does not support protocol %s, please use web terminal to access": "Este terminal não suporta o protocolo %s, por favor, use o terminal web para login", "TerminalInstanceNotFound": "Não foi encontrada uma instância de terminal para a aba atual", "TerminalInstanceNotFoundForCurrentTab": "A guia atual não encontrou a instância do terminal", + "The command '%s' requires review. Continue or not [Y/n]?": "O comando %s requer revisão, deseja continuar? [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]": "O comando que você executou possui riscos, uma notificação de alerta será enviada ao administrador. Deseja continuar? [S/N]", "TheCurrentTerminalInstanceWasNotFound": "Instância do terminal atual não encontrada", "Theme": "Tema", "ThemeColors": "Cor do tema", "ThemeConfig": "Tema", + "Ticket Reviewers: %s": "Revisor do ticket: %s", + "Tips: Enter asset[%s] account ID": "Dica: Insira o ID da conta do ativo [%s]", + "Tips: Enter g+NodeID to display the host under the node, such as g1": "Dica: Digite g+ID do nó para exibir os hosts abaixo do nó, por exemplo: g1", + "Tips: Enter protocol ID": "Dica: insira o ID do protocolo", + "Tips: To set a default language, go to Personal Settings → Preferences on Web": "Dica: para definir a língua padrão, por favor, vá para a versão web em \"Configurações pessoais → Preferências\"", + "Tips: switch language by ID (Current session only)": "Dica: digite ID para mudar de idioma", "Transfer": "Transmissão", "Type": "Tipo", "UnableToGenerateWebSocketURL": "Não é possível gerar a URL do WebSocket, faltando parâmetros", + "Unknown error code: %s, detail: %s": "Código de erro desconhecido: %s, detalhes: %s", + "Unknown status": "Estado desconhecido", "UpArrow": "Seta para cima", "Upload": "Upload", "UploadEnd": "O upload foi concluído, aguarde o processamento subsequente", @@ -117,11 +193,35 @@ "UploadTips": "Arraste o arquivo para cá ou clique para fazer o upload", "UploadTitle": "Enviar arquivo", "User": "Usuário", + "Username": "Nome de usuário", "UsingRegularExpressions": "Usar expressão regular", "VerifyCode": "código de verificação", "WaitFileTransfer": "Aguarde o fim da transferência do arquivo", "Warning": "Aviso", "WebSocketClosed": "WebSocket foi fechado", "WebSocketConnectionIsClosedHelpText": "Conexão do WebSocket fechada, por favor, atualize a página ou reconecte-se.", - "Writable": "pode escrever" + "Welcome to use JumpServer open source fortress system": "Bem-vindo ao sistema de bastião de código aberto JumpServer", + "Writable": "pode escrever", + "You don't have permission login %s": "Você não tem permissão para acessar %s", + "You get auth token failed": "Falha ao obter o token de autenticação", + "display the assets you have permission": "Mostrar os ativos aos quais você tem permissão", + "display the databases that you have permission": "Mostrar os bancos de dados aos quais você tem acesso", + "display the hosts that you have permission": "Mostrar os hosts aos quais você tem acesso", + "display the kubernetes that you have permission": "Mostrar seus Kubernetes autorizados", + "display the node that you have permission": "Mostrar os nós aos quais você tem permissão", + "exit": "Sair", + "get connect token err": "Erro ao obter o token de conexão", + "have no permission to download file": "Sem permissão para baixar o arquivo", + "have no permission to upload file": "Sem permissão para enviar arquivos", + "i/o timeout": "Rede indisponível (tempo de conexão excedido)", + "language switch": "Trocar idioma", + "network is unreachable": "Rede indisponível (rede inatingível)", + "not found matched username %s": "Não foi encontrado um nome de usuário correspondente %s", + "part IP, Hostname, Comment": "Parte do IP, nome do host, observações", + "part IP,, Hostname, Comment": "/ + IP, nome do host, observações", + "print help": "Mostrar ajuda", + "refresh your assets and nodes": "Atualizando as informações mais recentes sobre máquinas e nós", + "select one asset to login": "Selecione um dos ativos para fazer o login", + "to search login if unique": "Buscar login (se único)", + "to search, such as: /192.168": "Buscar, por exemplo: /192.168" } \ No newline at end of file diff --git a/apps/i18n/koko/ru.json b/apps/i18n/koko/ru.json index 48a3018a9..dd5a4be85 100644 --- a/apps/i18n/koko/ru.json +++ b/apps/i18n/koko/ru.json @@ -1,20 +1,45 @@ { + "\t%2d) Enter {{.GreenBoldColor}}%s{{.ColorEnd}} to %s.%s": "%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": "Права доступа", + "Address": "Адрес", "AlreadyExistsPleaseRename": "Создать папку", + "Announcement: ": "Объявление:", + "Authentication failed": "Ошибка аутентификации (неправильное имя пользователя или пароль)", "AvailableShortcutKey": "Доступные горячие клавиши", "Back": "Вернуться", + "Back: B/b": "Возврат: B/b", "Cancel": "Отмена", + "Cancel confirm": "Отменить проверку входа", + "Cancel to login asset or max 3 retry": "Отмена входа в актив или достижение 3-х попыток", "CancelFileUpload": "Отменить передачу файла", "CaseSensitive": "Учитывать регистрар", "Clone Connect": "Клонировать окно", "Close All Tabs": "Закрыть все вкладки", "Close Current Tab": "Закрыть эту вкладку", + "Command `%s` is forbidden": "Команда `%s` запрещена ...", + "Comment": "Примечание", "Confirm": "Подтвердить", "ConfirmBtn": "Подтвердить", "ConfirmDelete": "Вы уверены, что хотите удалить этот файл?", "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": "Скопировать ссылку и код подтверждения", "CopyShareURLSuccess": "URL общего доступа успешно скопирован", + "Core API failed": "Произошла ошибка Core API", + "Could copy website URL to notify reviewers: %s": "Копируемый адрес для аудита, уведомите аудитора: %s", + "Create k8s client err: %s": "Ошибка создания клиента k8s: %s", "CreateFolder": "Пользователи для分享", "CreateLink": "Создать ссылку", "CreateSuccess": "Успешно создано", @@ -27,10 +52,14 @@ "DownloadProgress": "Прогресс загрузки", "DownloadSuccess": "Успешное скачивание", "Downloading": "Ведётся загрузка", + "Dynamic": "Динамический аккаунт", "EndFileTransfer": "Передача файла завершена", + "Enter ID number directly login, multiple search use // + field, such as: //16": "Подсказка: вводите ID актива для прямого входа, для второго уровня поиска используйте // + поле, например: //192", "ExceedTransferSize": "Превышен максимальный размер передачи", "Expand": "Развернуть", "ExpiredTime": "Срок действия", + "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": "Ошибка создания соединения", "FileAlreadyExists": "Только для чтения", "FileListError": "Не удалось получить информацию о списке файлов", @@ -41,10 +70,15 @@ "FileUploadInterrupted": "Передача файла прервана", "Format": "Формат", "General": "Универсальный", + "Get auth password failed": "Вы не смогли получить токен аутентификации", "GetFileManagerTokenTimeOut": "Таймаут получения токена для управления файлами", "GetShareUser": "Введите имя пользователя", + "HandleTask does not support protocol %s, please use web terminal to access": "Этот терминал не поддерживает %s протокол, пожалуйста, войдите через веб-терминал", + "Hostname": "Имя хоста", "Hotkeys": "Горячие клавиши", + "ID": "ID", "InputVerifyCode": "Введите код подтверждения", + "Invalid ID": "Недействительный ID", "JoinShare": "Присоединиться к общей сессии", "JoinedWithSuccess": "Успешно присоединился", "KubernetesManagement": "Управление Kubernetes", @@ -53,41 +87,69 @@ "LeftArrow": "Стрелка влево", "LinkAddr": "Адрес ссылки", "List": "Список", + "Manual": "Ручной аккаунт", "MatchWholeWords": "Полное совпадение", "Minute": "Минуты", "Minutes": "Файл уже существует, пожалуйста, переименуйте", + "Must be auto login account for %s": "Должен быть аккаунт для автоматического входа %s", + "Must be unique account for %s": "Должен быть уникальный аккаунт %s", + "Must be unique asset for %s": "должен быть уникальным активом %s", "MustOneFile": "Можно выбрать только один файл", "MustSelectOneFile": "Необходимо выбрать файл", "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": "Создать папку", + "No Account found.": "Учетная запись не найдена", + "No Assets": "Активов нет", + "No Databases": "Нет базы данных", + "No found asset": "Не найдено подходящего актива %s", + "No kubernetes": "Kubernetes отсутствует", + "No protocol found.": "Нет протокола", + "No route to host": "Проблемы с сетью (маршрутизация недоступна)", "NoActiveTerminalTabFound": "Активная вкладка терминала не найдена", "NoData": "Нет данных", "NoLink": "Без адреса", "NoRunningTerminalFound": "Не найдено работающего терминала", + "Node: [ ID.Name(Asset amount) ]": "Узлы: [ ID.Имя(Количество активов) ]", "OnlineUser": "Онлайн пользователи", "OperationSuccessful": "Операция выполнена успешно", + "Organization": "Организация", "Owner": "Администратор", + "Page up: b\tPage down: n": "Предыдущая страница: b Следующая страница: n", + "Page: %d, Count: %d, Total Page: %d, Total Count: %d": "Номер страницы: %d, количество строк на странице: %d, общее количество страниц: %d, общее количество: %d", "Paste": "Вставить", "PauseSession": "Приостановить сессию", "PermissionDenied": "Нет разрешения", "PermissionExpired": "Разрешение истекло", "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 и Enter для отмены входа.", "PleaseInput": "Пожалуйста, введите", "PleaseInputVerifyCode": "Введите код безопасности", "PrimaryUser": "Главный пользователь", + "Protocol": "Протокол", "ReadOnly": "Минуты", "Reconnect": "Переподключение", "Refresh": "Обновить", + "Refresh done": "Обновление завершено", "Remove": "Удалить", "RemoveShareUser": "Вас удалили из общей сессии", "RemoveUser": "Удалить пользователя", "Rename": "Переименовать", "ResumeSession": "Возобновить сессию", + "Reuse SSH connections (%s@%s) [Number of connections: %d]": "Повторное использование SSH соединения (%s@%s) [Количество соединений: %d]", "RightArrow": "Стрелка вправо", "Search": "Поиск", + "Search: %s": "Поиск: %s", + "Select account exceed max retry times.": "Вы выбрали аккаунт, превышающий максимальное количество попыток", + "Select protocol exceed max retry times.": "Превышено максимальное количество попыток выбора протокола", "SelectAction": "Выберите действие", "SelectTheme": "Выберите тему", "Self": "Я", + "Session max time reached, disconnect": "Сессия превысила максимальное время соединения, отключение", "SessionDetail": "Детали разговора", "SessionShare": "Поделиться сессией", "Settings": "Настройки", @@ -96,18 +158,32 @@ "ShareUser": "Поделиться пользователем", "ShareUserHelpText": "Пустое поле означает, что присоединиться может каждый желающий.", "Size": "Размер", + "Start domain gateway failed %s": "Не удалось запустить шлюз базы данных %s", + "Switch language successfully": "Смена языка успешно выполнена", + "Switched to %s": "Переключено на %s", "Sync": "Синхронизация", "SyncUserPreferenceFailed": "Ошибка синхронизации настроек", "SyncUserPreferenceSuccess": "Настройки успешно синхронизированы", + "Terminal does not support protocol %s, please use web terminal to access": "Данный терминал не поддерживает протокол %s, пожалуйста, войдите через веб-терминал", "TerminalInstanceNotFound": "Не найден экземпляр терминала для текущей вкладки", "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": "Текущий экземпляр терминала не найден.", "Theme": "Тема", "ThemeColors": "Цвета темы", "ThemeConfig": "Настройки темы", + "Ticket Reviewers: %s": "Проверяющий рабочей заявки: %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 protocol ID": "Подсказка: введите ID протокола", + "Tips: To set a default language, go to Personal Settings → Preferences on Web": "Подсказка: если хотите установить язык по умолчанию, перейдите на веб-версию в «Личные настройки → Предпочтения»", + "Tips: switch language by ID (Current session only)": "Подсказка: введите ID для смены языка", "Transfer": "Передача", "Type": "Тип", "UnableToGenerateWebSocketURL": "Не удалось сгенерировать WebSocket URL, отсутствуют параметры", + "Unknown error code: %s, detail: %s": "Неизвестный код ошибки: %s, подробности: %s", + "Unknown status": "Неизвестное состояние", "UpArrow": "Кнопка вверх", "Upload": "Загрузить", "UploadEnd": "Загрузка завершена, пожалуйста, подождите дальнейшей обработки", @@ -117,11 +193,35 @@ "UploadTips": "Перетащите файл сюда или нажмите для загрузки", "UploadTitle": "Загрузить файл", "User": "Пользователь", + "Username": "Имя пользователя", "UsingRegularExpressions": "Использовать регулярные выражения", "VerifyCode": "Код подтверждения", "WaitFileTransfer": "Ожидание завершения передачи файла", "Warning": "Предупреждение", "WebSocketClosed": "WebSocket закрыт", "WebSocketConnectionIsClosedHelpText": "WebSocket соединение закрыто, пожалуйста, обновите страницу или переподключитесь.", - "Writable": "Создать ссылку для分享" + "Welcome to use JumpServer open source fortress system": "Добро пожаловать в открытую систему JumpServer Bastion Host", + "Writable": "Создать ссылку для分享", + "You don't have permission login %s": "У вас нет полномочий для входа в %s", + "You get auth token failed": "Вы не смогли получить токен аутентификации", + "display the assets you have permission": "Показать активы, к которым у вас есть доступ", + "display the databases that you have permission": "Показать базы данных, к которым у вас есть доступ", + "display the hosts that you have permission": "Показать хосты, к которым у вас есть доступ", + "display the kubernetes that you have permission": "Показать доступные вам Kubernetes", + "display the node that you have permission": "Показать узлы, к которым у вас есть доступ", + "exit": "Выход", + "get connect token err": "Ошибка получения токена подключения", + "have no permission to download file": "Нет прав для загрузки файла", + "have no permission to upload file": "Нет прав для загрузки файла", + "i/o timeout": "Проблемы с сетью (время соединения истекло)", + "language switch": "Переключение языка", + "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" } \ No newline at end of file diff --git a/apps/i18n/koko/vi.json b/apps/i18n/koko/vi.json new file mode 100644 index 000000000..a30d97e9c --- /dev/null +++ b/apps/i18n/koko/vi.json @@ -0,0 +1,227 @@ +{ + "\t%2d) Enter {{.GreenBoldColor}}%s{{.ColorEnd}} to %s.%s": "%d) Nhập {{.GreenBoldColor}}%s{{.ColorEnd}} để thực hiện %s.%s", + "%s approved": "%s đã được phê duyệt.", + "%s node has no assets": "Tài nguyên trên nút %s không tồn tại", + "%s protocol client not installed.": "%s协议 của khách hàng chưa được cài đặt", + "%s rejected": "Phê duyệt bị từ chối", + "ACL reject": "Đăng nhập lần này đã bị từ chối vì hạn chế của chính sách kiểm soát truy cập", + "Account <%s> and asset <%s> protocol are inconsistent.": "Người dùng hệ thống<%s> và tài sản<%s> không nhất quán", + "ActionPerm": "Quyền hành động", + "Address": "Địa chỉ", + "AlreadyExistsPleaseRename": "Tệp đã tồn tại, vui lòng đổi tên", + "Announcement: ": "Thông báo:", + "Authentication failed": "Xác thực thất bại (tên người dùng hoặc mật khẩu không chính xác)", + "AvailableShortcutKey": "Phím tắt có sẵn", + "Back": "Quay lại", + "Back: B/b": "Quay lại: B/b", + "Cancel": "Hủy bỏ", + "Cancel confirm": "Hủy phê duyệt đăng nhập", + "Cancel to login asset or max 3 retry": "Hủy đăng nhập vào tài nguyên hoặc đã đạt 3 lần thử lại", + "CancelFileUpload": "Hủy tải file lên", + "CaseSensitive": "Phân biệt chữ hoa chữ thường", + "Clone Connect": "Sao chép cửa sổ", + "Close All Tabs": "Đóng tất cả", + "Close Current Tab": "Đóng hiện tại", + "Command `%s` is forbidden": "Lệnh `%s` bị cấm ...", + "Comment": "Ghi chú", + "Confirm": "Xác nhận", + "ConfirmBtn": "Đồng ý", + "ConfirmDelete": "Bạn có chắc chắn muốn xóa tệp này không?", + "Connect": "Kết nối", + "Connect idle more than %d minutes, disconnect": "thời gian rảnh rỗi vượt quá %d phút, ngắt kết nối", + "Connect with api server failed": "Kết nối dịch vụ API thất bại", + "Connecting to %s@%s": "bắt đầu kết nối đến %s@%s", + "Connecting to Database %s": "Bắt đầu kết nối với cơ sở dữ liệu %s", + "Connecting to Kubernetes %s": "Bắt đầu kết nối với Kubernetes %s", + "Connecting to Kubernetes %s container %s": "Bắt đầu kết nối với Kubernetes %s Container %s", + "Connection refused": "Mạng không kết nối (kết nối bị từ chối)", + "CopyLink": "Sao chép liên kết và mã xác thực.", + "CopyShareURLSuccess": "Sao chép địa chỉ chia sẻ thành công", + "Core API failed": "Lỗi xảy ra tại Core API", + "Could copy website URL to notify reviewers: %s": "Địa chỉ kiểm tra có thể sao chép, thông báo cho người kiểm tra: %s", + "Create k8s client err: %s": "Tạo lỗi khách hàng k8s: %s", + "CreateFolder": "Tạo thư mục", + "CreateLink": "Tạo liên kết", + "CreateSuccess": "Tạo thành công", + "CurrentUser": "Người dùng hiện tại", + "Custom Setting": "Cài đặt tùy chỉnh", + "DangerWarning": "Đây là một hành động nguy hiểm", + "Delete": "Xóa", + "DownArrow": "Mũi tên hướng xuống", + "Download": "Tải xuống", + "DownloadProgress": "Tiến độ tải xuống", + "DownloadSuccess": "Tải xuống thành công", + "Downloading": "Đang tải xuống", + "Dynamic": "Tài khoản động", + "EndFileTransfer": "Chuyển file hoàn tất", + "Enter ID number directly login, multiple search use // + field, such as: //16": "Gợi ý: Nhập ID tài sản để đăng nhập trực tiếp, tìm kiếm cấp hai sử dụng // + lĩnh vực, ví dụ: //192", + "ExceedTransferSize": "Vượt quá kích thước truyền tải tối đa", + "Expand": "Mở rộng", + "ExpiredTime": "Thời gian hiệu lực", + "Face ACL is not supported yet. Please use the WebTerminal to connect the asset.": "Thiết bị này không hỗ trợ quy tắc truy cập bằng khuôn mặt, vui lòng đăng nhập bằng thiết bị web", + "Face verification is not supported yet. Please use the WebTerminal to connect the asset.": "Thiết bị đầu cuối này không hỗ trợ xác thực nhận diện khuôn mặt, vui lòng đăng nhập bằng thiết bị đầu cuối web.", + "FailedCreateConnection": "Tạo kết nối thất bại", + "FileAlreadyExists": "Tệp đã tồn tại", + "FileListError": "Lấy thông tin danh sách tệp thất bại", + "FileManagement": "Quản lý tập tin", + "FileManagementExpired": "Phiên quản lý tệp hiện tại đã hết hạn.", + "FileManagerTokenTimeout": "Lấy Token quản lý tập tin hết thời gian", + "FileTransferInterrupted": "Chuyển tệp bị gián đoạn", + "FileUploadInterrupted": "Tải tệp bị ngắt quãng", + "Format": "Định dạng", + "General": "Chung", + "Get auth password failed": "Bạn đã không thể lấy mã xác thực", + "GetFileManagerTokenTimeOut": "Lấy Token quản lý tập tin hết thời gian", + "GetShareUser": "Nhập tên người dùng", + "HandleTask does not support protocol %s, please use web terminal to access": "Thiết bị này không hỗ trợ giao thức %s, vui lòng đăng nhập bằng thiết bị web", + "Hostname": "Tên máy chủ", + "Hotkeys": "Phím tắt", + "ID": "ID", + "InputVerifyCode": "Xin vui lòng nhập mã xác minh", + "Invalid ID": "ID không hợp lệ", + "JoinShare": "Tham gia chia sẻ", + "JoinedWithSuccess": "Đã tham gia thành công", + "KubernetesManagement": "Quản lý Kubernetes", + "LastModified": "Thời gian chỉnh sửa cuối cùng", + "LeaveShare": "Rời khỏi chia sẻ", + "LeftArrow": "Mũi tên quay lại", + "LinkAddr": "Địa chỉ liên kết", + "List": "Danh sách", + "Manual": "Tài khoản thủ công", + "MatchWholeWords": "Khớp chính xác", + "Minute": "Phút", + "Minutes": "Phút", + "Must be auto login account for %s": "Tài khoản phải là tài khoản đăng nhập tự động %s", + "Must be unique account for %s": "Tài khoản phải là duy nhất %s", + "Must be unique asset for %s": "Phải là tài nguyên duy nhất %s", + "MustOneFile": "Chỉ có thể chọn một tệp", + "MustSelectOneFile": "Phải chọn một tệp", + "Name": "Tên", + "Need ACL review, continue? (y/n): ": "cần phê duyệt, tiếp tục? (y/n):", + "Need ticket confirm to execute command, already send email to the reviewers": "Cần lệnh công việc để thực hiện phê duyệt, đã gửi email thông báo cho người phê duyệt", + "Need ticket confirm to login, already send email to the reviewers": "Cần đăng nhập công việc để kiểm tra và đã gửi email thông báo cho người kiểm tra", + "NewFolder": "Thư mục mới", + "No Account found.": "Không tìm thấy tài khoản", + "No Assets": "Không có tài sản", + "No Databases": "không có cơ sở dữ liệu", + "No found asset": "Không tìm thấy tài sản phù hợp %s", + "No kubernetes": "Không có Kubernetes", + "No protocol found.": "Không có giao thức", + "No route to host": "Mạng không ổn định (đường truyền không thông)", + "NoActiveTerminalTabFound": "Không tìm thấy tab terminal hoạt động", + "NoData": "Không có dữ liệu", + "NoLink": "Không có địa chỉ", + "NoRunningTerminalFound": "Không tìm thấy terminal đang chạy", + "Node: [ ID.Name(Asset amount) ]": "nút: [ ID.Tên (số lượng tài sản) ]", + "OnlineUser": "Người dùng trực tuyến", + "OperationSuccessful": "Thao tác thành công", + "Organization": "Tổ chức", + "Owner": "Quản lý", + "Page up: b\tPage down: n": "Trang trước: b Trang tiếp theo: n", + "Page: %d, Count: %d, Total Page: %d, Total Count: %d": "Số trang: %d, số dòng mỗi trang: %d, tổng số trang: %d, tổng số lượng: %d", + "Paste": "Dán vào", + "PauseSession": "Tạm dừng phiên này", + "PermissionDenied": "Không có quyền", + "PermissionExpired": "Quyền đã hết hạn", + "PermissionValid": "Quyền vẫn còn hiệu lực", + "Platform": "Nền tảng", + "Please waiting for the reviewers to confirm command `%s`, cancel by CTRL+C or CTRL+D.": "Vui lòng chờ người xem xét xem xét lệnh `%s`, hủy bằng CTRL+C hoặc CTRL+D.", + "Please waiting for the reviewers to confirm, enter q to exit. ": "Đang chờ người kiểm tra xác nhận, nhấn q và Enter để hủy đăng nhập.", + "PleaseInput": "Vui lòng nhập", + "PleaseInputVerifyCode": "Vui lòng nhập mã xác thực", + "PrimaryUser": "Người dùng chính", + "Protocol": "Giao thức", + "ReadOnly": "Chỉ đọc", + "Reconnect": "Kết nối lại", + "Refresh": "Làm mới", + "Refresh done": "làm mới hoàn tất", + "Remove": "Gỡ bỏ", + "RemoveShareUser": "Bạn đã bị gỡ khỏi phiên chia sẻ.", + "RemoveUser": "Gỡ bỏ người dùng", + "Rename": "Đổi tên", + "ResumeSession": "Khôi phục phiên này", + "Reuse SSH connections (%s@%s) [Number of connections: %d]": "Tái sử dụng kết nối SSH (%s@%s) [Số lượng kết nối: %d]", + "RightArrow": "Mũi tên tiến lên", + "Search": "Tìm kiếm", + "Search: %s": "Tìm kiếm: %s", + "Select account exceed max retry times.": "Số tài khoản đã vượt quá số lần thử tối đa", + "Select protocol exceed max retry times.": "chọn giao thức vượt quá số lần thử tối đa.", + "SelectAction": "Vui lòng chọn", + "SelectTheme": "- Chọn chủ đề\n- Định dạng\n- Bạn có chắc chắn muốn xóa tệp này không?\n- Truyền tệp bị gián đoạn\n- Chia sẻ phiên\n- Phải chọn một tệp\n- Tải xuống thành công\n- Chưa chọn người dùng, tức là cho phép tất cả mọi người tham gia\n- Cài đặt đồng bộ thành công\n- Người dùng chia sẻ\n- Tệp đã tồn tại\n- Bạn đã bị gỡ bỏ khỏi phiên chia sẻ\n- Đồng bộ\n- Người dùng chính\n- Mũi tên quay lại", + "Self": "Tôi", + "Session max time reached, disconnect": "Phiên đã vượt quá thời gian kết nối tối đa, ngắt kết nối", + "SessionDetail": "Chi tiết phiên hoạt động.", + "SessionShare": "Chia sẻ phiên", + "Settings": "Cài đặt", + "Share": "Chia sẻ", + "ShareLink": "Chia sẻ liên kết", + "ShareUser": "Chia sẻ người dùng", + "ShareUserHelpText": "Chưa chọn người dùng, tức là cho phép mọi người tham gia", + "Size": "Kích thước", + "Start domain gateway failed %s": "Khởi động cổng cơ sở dữ liệu thất bại %s \nCập nhật thông tin máy móc và nút mới nhất \nLệnh %s cần được xem xét, bạn có muốn tiếp tục không? [Y/N] \nTìm kiếm, ví dụ: /192.168 \nMạng không thông (mạng không thể truy cập) \nKhông có cơ sở dữ liệu \nHiển thị các cơ sở dữ liệu mà bạn có quyền truy cập \nBắt đầu kết nối đến %s@%s \nHiển thị các Kubernetes mà bạn có quyền truy cập \nCập nhật hoàn tất \nNút: [ ID.Tên(Số lượng tài sản) ] \nChuyển đổi ngôn ngữ thành công \nChọn giao thức vượt quá số lần thử tối đa \nThời gian nhàn rỗi vượt quá %d phút, ngắt kết nối \nLời khuyên: Nhập g+nút ID để hiển thị các máy chủ dưới nút, ví dụ: g1", + "Switch language successfully": "chuyển ngôn ngữ thành công", + "Switched to %s": "Đã chuyển sang %s", + "Sync": "Đồng bộ", + "SyncUserPreferenceFailed": "Đồng bộ cài đặt thất bại", + "SyncUserPreferenceSuccess": "Cài đặt đồng bộ thành công", + "Terminal does not support protocol %s, please use web terminal to access": "Thiết bị này không hỗ trợ %sprotocol, vui lòng đăng nhập bằng thiết bị web", + "TerminalInstanceNotFound": "Không tìm thấy phiên bản terminal của tab hiện tại", + "TerminalInstanceNotFoundForCurrentTab": "Không tìm thấy phiên bản terminal trong tab hiện tại", + "The command '%s' requires review. Continue or not [Y/n]?": "lệnh %s cần được xem xét, có tiếp tục không? [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]": "Lệnh bạn thực hiện có nguy cơ, thông báo cảnh báo sẽ được gửi đến quản lý. Có muốn tiếp tục không? [Y/N]", + "TheCurrentTerminalInstanceWasNotFound": "Không tìm thấy phiên bản terminal hiện tại", + "Theme": "Chủ đề", + "ThemeColors": "Màu sắc chủ đề", + "ThemeConfig": "Chủ đề", + "Ticket Reviewers: %s": "Người xem xét công việc: %s", + "Tips: Enter asset[%s] account ID": "Gợi ý: Nhập ID tài khoản của tài sản [%s]", + "Tips: Enter g+NodeID to display the host under the node, such as g1": "Ghi chú: Nhập g+ID nút để hiển thị máy chủ dưới nút, ví dụ: g1", + "Tips: Enter protocol ID": "Gợi ý: Nhập ID giao thức", + "Tips: To set a default language, go to Personal Settings → Preferences on Web": "Gợi ý: Để thiết lập ngôn ngữ mặc định, vui lòng truy cập vào trang Web \"Cài đặt cá nhân → Tùy chọn\"", + "Tips: switch language by ID (Current session only)": "Gợi ý: Nhập ID để chuyển đổi ngôn ngữ", + "Transfer": "Truyền tải", + "Type": "Loại", + "UnableToGenerateWebSocketURL": "Không thể tạo URL WebSocket, thiếu tham số", + "Unknown error code: %s, detail: %s": "Mã lỗi không xác định: %s, chi tiết: %s", + "Unknown status": "Trạng thái không xác định", + "UpArrow": "Mũi tên lên", + "Upload": "Tải lên", + "UploadEnd": "Tải lên đã hoàn tất, vui lòng chờ xử lý tiếp theo", + "UploadProgress": "Tiến độ tải lên", + "UploadStart": "Bắt đầu tải lên", + "UploadSuccess": "Tải lên thành công", + "UploadTips": "Kéo file đến đây, hoặc nhấp vào tải lên", + "UploadTitle": "Tải lên tệp", + "User": "Người dùng", + "Username": "Tên người dùng", + "UsingRegularExpressions": "Sử dụng biểu thức chính quy", + "VerifyCode": "Mã xác thực", + "WaitFileTransfer": "Chờ đợi kết thúc truyền tệp", + "Warning": "Cảnh báo", + "WebSocketClosed": "WebSocket đã đóng", + "WebSocketConnectionIsClosedHelpText": "Kết nối WebSocket đã bị đóng, vui lòng làm mới trang hoặc kết nối lại.", + "Welcome to use JumpServer open source fortress system": "Chào mừng bạn đến với hệ thống JumpServer mã nguồn mở", + "Writable": "Có thể ghi", + "You don't have permission login %s": "Bạn không có quyền đăng nhập vào %s", + "You get auth token failed": "Bạn đã không lấy được mã thông báo xác thực", + "display the assets you have permission": "Hiển thị tài sản mà bạn có quyền truy cập", + "display the databases that you have permission": "hiển thị cơ sở dữ liệu mà bạn có quyền truy cập", + "display the hosts that you have permission": "Hiển thị các máy chủ mà bạn có quyền", + "display the kubernetes that you have permission": "hiển thị các Kubernetes mà bạn có quyền truy cập", + "display the node that you have permission": "Hiển thị các nút mà bạn có quyền truy cập", + "exit": "Thoát", + "get connect token err": "Lỗi lấy mã kết nối", + "have no permission to download file": "Không có quyền tải xuống tệp", + "have no permission to upload file": "Không có quyền tải lên tệp", + "i/o timeout": "Mạng không ổn định (thời gian kết nối đã hết)", + "language switch": "Chuyển đổi ngôn ngữ", + "network is unreachable": "mạng không thông (mạng không thể tiếp cận)", + "not found matched username %s": "Không tìm thấy tên người dùng khớp %s", + "part IP, Hostname, Comment": "Một phần IP, tên máy chủ, ghi chú", + "part IP,, Hostname, Comment": "/ + IP, tên máy chủ, ghi chú", + "print help": "Hiển thị trợ giúp", + "refresh your assets and nodes": "làm mới thông tin máy và nút mới nhất", + "select one asset to login": "Chọn một tài sản để đăng nhập", + "to search login if unique": "Tìm kiếm đăng nhập (nếu duy nhất)", + "to search, such as: /192.168": "tìm kiếm, ví dụ: /192.168" +} \ No newline at end of file diff --git a/apps/i18n/koko/zh.json b/apps/i18n/koko/zh.json index 0fea28e95..7dfbaf800 100644 --- a/apps/i18n/koko/zh.json +++ b/apps/i18n/koko/zh.json @@ -123,5 +123,105 @@ "Warning": "警告", "WebSocketClosed": "WebSocket 已关闭", "WebSocketConnectionIsClosedHelpText": "WebSocket 连接已关闭,请刷新页面或重新连接。", - "Writable": "可写" + "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开源堡垒机系统", + "part IP, Hostname, Comment": "部分IP,主机名,备注", + "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 get auth token failed": "你获取认证令牌失败", + "Get auth password failed": "你获取认证令牌失败", + "Reuse SSH connections (%s@%s) [Number of connections: %d]": "复用SSH连接(%s@%s)[连接数量: %d]", + "Switched to %s": "已切换至%s", + "Connect with api server failed": "连接API服务失败", + "Start domain gateway failed %s": "启动数据库网关失败%s", + "Manual": "手动账号", + "Dynamic": "动态账号", + "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", + "Session max time reached, disconnect": "会话超过最大连接时间,断开连接", + "Authentication failed": "认证失败(用户名或密码错误)", + "Connection refused": "网络不通(连接拒绝)", + "i/o timeout": "网络不通(连接超时)", + "No route to host": "网络不通(路由不通)", + "network is unreachable": "网络不通(网络不可达)" } \ No newline at end of file diff --git a/apps/i18n/koko/zh_hant.json b/apps/i18n/koko/zh_hant.json index c2400a1a2..84624e81e 100644 --- a/apps/i18n/koko/zh_hant.json +++ b/apps/i18n/koko/zh_hant.json @@ -1,20 +1,45 @@ { + "\t%2d) Enter {{.GreenBoldColor}}%s{{.ColorEnd}} to %s.%s": "%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": "操作權限", + "Address": "地址", "AlreadyExistsPleaseRename": "檔案已存在,請重新命名", + "Announcement: ": "公告:", + "Authentication failed": "認證失敗(用戶名或密碼錯誤)", "AvailableShortcutKey": "可用快捷鍵", "Back": "返回", + "Back: B/b": "返回:B/b", "Cancel": "取消", + "Cancel confirm": "取消登錄復核", + "Cancel to login asset or max 3 retry": "取消登錄資產或達到3次重試", "CancelFileUpload": "取消文件上傳", "CaseSensitive": "區分大小寫", "Clone Connect": "複製視窗", "Close All Tabs": "關閉全部", "Close Current Tab": "關閉當前", + "Command `%s` is forbidden": "命令 `%s` 是被禁止的 ...", + "Comment": "備註", "Confirm": "確認", "ConfirmBtn": "確定", "ConfirmDelete": "您確定要刪除該文件嗎?", "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": "複製連結及驗證碼", "CopyShareURLSuccess": "複製分享地址成功", + "Core API failed": "Core API 發生錯誤", + "Could copy website URL to notify reviewers: %s": "可複製審核地址,通知審核人:%s", + "Create k8s client err: %s": "創建 k8s 客戶端錯誤:%s", "CreateFolder": "創建資料夾", "CreateLink": "創建連結", "CreateSuccess": "創建成功", @@ -27,10 +52,14 @@ "DownloadProgress": "下載進度", "DownloadSuccess": "下載成功", "Downloading": "正在下載", + "Dynamic": "動態帳號", "EndFileTransfer": "文件傳輸結束", + "Enter ID number directly login, multiple search use // + field, such as: //16": "提示:輸入資產ID直接登錄,二級搜索使用 // + 欄位,如://192", "ExceedTransferSize": "超過最大傳輸大小", "Expand": "展開", "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": "創建連接失敗", "FileAlreadyExists": "檔案已存在", "FileListError": "獲取文件列表資訊失敗", @@ -41,10 +70,15 @@ "FileUploadInterrupted": "文件上傳中斷", "Format": "格式", "General": "通用傳輸", + "Get auth password failed": "你獲取認證令牌失敗", "GetFileManagerTokenTimeOut": "獲取文件管理 Token 超時", "GetShareUser": "輸入使用者名稱", + "HandleTask does not support protocol %s, please use web terminal to access": "該終端不支持 %s 協議,請使用web終端登錄", + "Hostname": "主機名", "Hotkeys": "快速鍵", + "ID": "ID", "InputVerifyCode": "請輸入驗證碼", + "Invalid ID": "無效 ID", "JoinShare": "加入共享", "JoinedWithSuccess": "已成功加入", "KubernetesManagement": "Kubernetes 管理", @@ -53,41 +87,69 @@ "LeftArrow": "後退箭頭", "LinkAddr": "連結地址", "List": "列表", + "Manual": "手動帳號", "MatchWholeWords": "全字匹配", "Minute": "分鐘", "Minutes": "分", + "Must be auto login account for %s": "必須是自動登錄帳號 %s", + "Must be unique account for %s": "必須是唯一的帳號 %s", + "Must be unique asset for %s": "必須是唯一的資產 %s", "MustOneFile": "只能選擇一個文件", "MustSelectOneFile": "必須選擇一個文件", "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": "新建文件夾", + "No Account found.": "未發現賬號", + "No Assets": "沒有資產", + "No Databases": "無數據庫", + "No found asset": "未發現匹配的資產 %s", + "No kubernetes": "沒有kubernetes", + "No protocol found.": "無協議", + "No route to host": "網絡不通(路由不通)", "NoActiveTerminalTabFound": "未找到活動終端標籤頁", "NoData": "無資料", "NoLink": "無地址", "NoRunningTerminalFound": "未找到正在運行的終端", + "Node: [ ID.Name(Asset amount) ]": "節點:[ ID.名稱(資產數量) ]", "OnlineUser": "在線用戶", "OperationSuccessful": "操作成功", + "Organization": "組織", "Owner": "管理者", + "Page up: b\tPage down: n": "上一頁:b 下一頁:n", + "Page: %d, Count: %d, Total Page: %d, Total Count: %d": "頁碼:%d,每頁行數:%d,總頁數:%d,總數量:%d", "Paste": "貼上", "PauseSession": "暫停此會話", "PermissionDenied": "沒有權限", "PermissionExpired": "權限已過期", "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": "請輸入", "PleaseInputVerifyCode": "請輸入驗證碼", "PrimaryUser": "主用戶", + "Protocol": "協議", "ReadOnly": "只讀", "Reconnect": "重新連線", "Refresh": "刷新", + "Refresh done": "刷新完成", "Remove": "移除", "RemoveShareUser": "你已經被移除共享會話", "RemoveUser": "移除用戶", "Rename": "重命名", "ResumeSession": "恢復此會話", + "Reuse SSH connections (%s@%s) [Number of connections: %d]": "複用SSH連接(%s@%s)[連接數量: %d]", "RightArrow": "前進箭頭", "Search": "搜尋", + "Search: %s": "搜索:%s", + "Select account exceed max retry times.": "選擇賬號超過最大重試次數", + "Select protocol exceed max retry times.": "選擇協議超過最大重試次數", "SelectAction": "請選擇", "SelectTheme": "請選擇主題", "Self": "我", + "Session max time reached, disconnect": "會話超過最大連接時間,斷開連接", "SessionDetail": "會話詳情", "SessionShare": "會話分享", "Settings": "設置", @@ -96,18 +158,32 @@ "ShareUser": "分享用戶", "ShareUserHelpText": "未選擇用戶,即允許所有人加入", "Size": "大小", + "Start domain gateway failed %s": "啟動資料庫網關失敗%s \n刷新最新的機器和節點資訊 \n命令 %s 需要複核,是否繼續?[Y/N] \n搜索,如:/192.168 \n網絡不通(網絡不可達) \n無資料庫 \n顯示您有權限的資料庫 \n開始連接到 %s@%s \n顯示您有權限的 Kubernetes \n刷新完成 \n節點:[ ID.名稱(資產數量) ] \n切換語言成功 \n選擇協議超過最大重試次數 \n空閒時間超過%d分鐘,斷開連接 \n提示:輸入 g+節點ID 顯示節點下主機,如: g1", + "Switch language successfully": "切換語言成功", + "Switched to %s": "已切換至%s", "Sync": "同步", "SyncUserPreferenceFailed": "同步設定失敗", "SyncUserPreferenceSuccess": "同步設定成功", + "Terminal does not support protocol %s, please use web terminal to access": "該終端不支持 %s 協議,請使用web終端登錄", "TerminalInstanceNotFound": "未找到當前選項卡的終端實例", "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": "當前終端實例未找到", "Theme": "主題", "ThemeColors": "主題顏色", "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": "傳輸", "Type": "類型", "UnableToGenerateWebSocketURL": "無法生成 WebSocket URL,缺少參數", + "Unknown error code: %s, detail: %s": "未知錯誤代碼:%s,詳情:%s", + "Unknown status": "未知狀態", "UpArrow": "向上箭頭", "Upload": "上傳", "UploadEnd": "上傳已完成,請等待後續處理", @@ -117,11 +193,35 @@ "UploadTips": "將文件拖到此處,或點擊上傳", "UploadTitle": "上傳文件", "User": "用戶", + "Username": "用戶名", "UsingRegularExpressions": "使用正則表達式", "VerifyCode": "驗證碼", "WaitFileTransfer": "等待文件傳輸結束", "Warning": "警告", "WebSocketClosed": "WebSocket 已關閉", "WebSocketConnectionIsClosedHelpText": "WebSocket 連接已關閉,請刷新頁面或重新連接。", - "Writable": "可寫" + "Welcome to use JumpServer open source fortress system": "歡迎使用JumpServer開源堡壘機系統", + "Writable": "可寫", + "You don't have permission login %s": "你無權登錄%s", + "You get auth token failed": "您獲取認證令牌失敗", + "display the assets you have permission": "顯示您有權限的資產", + "display the databases that you have permission": "顯示您有權限的數據庫", + "display the hosts that you have permission": "顯示您有權限的主機", + "display the kubernetes that you have permission": "顯示您有權限的Kubernetes", + "display the node that you have permission": "顯示您有權限的節點", + "exit": "退出", + "get connect token err": "獲取連接令牌錯誤", + "have no permission to download file": "無權限下載文件", + "have no permission to upload file": "無權限上傳文件", + "i/o timeout": "網絡不通(連接超時)", + "language switch": "語言切換", + "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" } \ No newline at end of file diff --git a/apps/i18n/lina/es.json b/apps/i18n/lina/es.json index 393550244..8ec7ea7a5 100644 --- a/apps/i18n/lina/es.json +++ b/apps/i18n/lina/es.json @@ -572,6 +572,7 @@ "EsUrl": "No puede incluir caracteres especiales `#`; ej: http://es_user:es_password@es_host:es_port", "Every": "Cada", "Exclude": "No incluir", + "ExcludeAccount": "Excluir cuenta", "ExcludeAsset": "Activos omitidos", "ExcludeSymbol": "Caracteres excluidos", "ExecCloudSyncErrorMsg": "La configuración de la cuenta en la nube está incompleta, por favor actualiza y vuelve a intentarlo", @@ -1352,6 +1353,7 @@ "Support": "Apoyo", "SupportedProtocol": "Protocolos soportados", "SupportedProtocolHelpText": "Establezca los protocolos compatibles con los activos; al hacer clic en el botón de configuración, podrá modificar la configuración personalizada del protocolo, como el directorio SFTP, el dominio RDP AD, entre otros", + "SupportedTypes": "Tipos soportados", "Sync": "Sincronizar", "SyncAction": "Sincronizar Acción", "SyncDelete": "Sincronizar eliminación", @@ -1525,6 +1527,7 @@ "UserCreate": "crear usuario", "UserData": "Datos del usuario", "UserDetail": "Detalles del usuario", + "UserGroup": "Grupo de usuarios", "UserGroupCreate": "Crear grupo de usuarios", "UserGroupDetail": "Detalles del grupo de usuarios", "UserGroupList": "Grupo de usuarios", diff --git a/apps/i18n/lina/ja.json b/apps/i18n/lina/ja.json index b30afce50..65878d358 100644 --- a/apps/i18n/lina/ja.json +++ b/apps/i18n/lina/ja.json @@ -577,6 +577,7 @@ "EsUrl": "特殊文字 `#` は含むことができません;例: http://es_user:es_password@es_host:es_port", "Every": "毎", "Exclude": "除外", + "ExcludeAccount": "アカウント除外", "ExcludeAsset": "スキップされた資産", "ExcludeSymbol": "文字の除外", "ExecCloudSyncErrorMsg": "クラウドアカウントの設定が完全でないので、更新して再試行してください", @@ -1357,6 +1358,7 @@ "Support": "サポート", "SupportedProtocol": "サポートされているプロトコル", "SupportedProtocolHelpText": "資産がサポートするプロトコルを設定します。設定ボタンをクリックして、プロトコルのカスタム設定を変更することができます。例えば、SFTPディレクトリやRDP ADドメインなど", + "SupportedTypes": "サポートされているタイプ", "Sync": "同期する", "SyncAction": "同期アクション", "SyncDelete": "同期削除", @@ -1530,6 +1532,7 @@ "UserCreate": "ユーザーを作成する", "UserData": "ユーザーデータ", "UserDetail": "ユーザーの詳細", + "UserGroup": "ユーザーグループ", "UserGroupCreate": "ユーザーグループの作成", "UserGroupDetail": "ユーザーグループ詳細", "UserGroupList": "ユーザーグループ", diff --git a/apps/i18n/lina/ko.json b/apps/i18n/lina/ko.json index 6a86038b4..2a9830145 100644 --- a/apps/i18n/lina/ko.json +++ b/apps/i18n/lina/ko.json @@ -572,6 +572,7 @@ "EsUrl": "특수 문자 `#`를 포함할 수 없습니다; 예: http://es_user:es_password@es_host:es_port", "Every": "매우", "Exclude": "포함되지 않음", + "ExcludeAccount": "계정 제외", "ExcludeAsset": "건너뛴 자산", "ExcludeSymbol": "제외 문자", "ExecCloudSyncErrorMsg": "클라우드 계정 구성에 문제가 있습니다. 업데이트 후 다시 시도하십시오.", @@ -1352,6 +1353,7 @@ "Support": "지원", "SupportedProtocol": "지원하는 프로토콜", "SupportedProtocolHelpText": "자산 지원 프로토콜을 설정하십시오. 설정 버튼을 클릭하면 SFTP 디렉토리, RDP AD 도메인 등과 같은 프로토콜에 대한 사용자 정의 구성을 수정할 수 있습니다.", + "SupportedTypes": "지원되는 유형", "Sync": "동기화", "SyncAction": "동기화 행동", "SyncDelete": "동기화 삭제", @@ -1525,6 +1527,7 @@ "UserCreate": "사용자 생성", "UserData": "사용자 데이터", "UserDetail": "사용자 세부사항", + "UserGroup": "사용자 그룹", "UserGroupCreate": "사용자 그룹 생성", "UserGroupDetail": "사용자 그룹 세부정보", "UserGroupList": "사용자 그룹", diff --git a/apps/i18n/lina/pt_br.json b/apps/i18n/lina/pt_br.json index 2b6ab0080..82d83ff76 100644 --- a/apps/i18n/lina/pt_br.json +++ b/apps/i18n/lina/pt_br.json @@ -573,6 +573,7 @@ "EsUrl": "Não pode conter o caractere especial `#`; ex: http://es_user:es_password@es_host:es_port", "Every": "Cada", "Exclude": "Não inclui", + "ExcludeAccount": "Excluir conta", "ExcludeAsset": "Ativos ignorados", "ExcludeSymbol": " Excluir caracteres", "ExecCloudSyncErrorMsg": "A configuração da conta em nuvem não está completa, atualize e tente novamente", @@ -1353,6 +1354,7 @@ "Support": "Suporte", "SupportedProtocol": "Protocolos suportados", "SupportedProtocolHelpText": "Configure os protocolos suportados pelos ativos, clicar no botão de configurações permite a personalização, como diretórios SFTP, domínios RDP AD, etc.", + "SupportedTypes": "Tipos suportados", "Sync": "Sincronizar", "SyncAction": "Action de sincronização", "SyncDelete": "Sincronizar e excluir", @@ -1526,6 +1528,7 @@ "UserCreate": "Criar usuário", "UserData": "Dados do usuário", "UserDetail": "Detalhes do usuário", + "UserGroup": "Grupo de usuários", "UserGroupCreate": "Criar Grupo de Usuários", "UserGroupDetail": "Detalhes do grupo de usuários", "UserGroupList": "Grupo de usuários", diff --git a/apps/i18n/lina/ru.json b/apps/i18n/lina/ru.json index 0836dd835..209d391d3 100644 --- a/apps/i18n/lina/ru.json +++ b/apps/i18n/lina/ru.json @@ -574,6 +574,7 @@ "EsUrl": "Не может содержать специальные символы `#`; например: http://es_user:es_password@es_host:es_port", "Every": "Каждый", "Exclude": "Не содержит", + "ExcludeAccount": "Исключенные аккаунты", "ExcludeAsset": "Пропущенные активы", "ExcludeSymbol": "Исключить символ", "ExecCloudSyncErrorMsg": "Выполнить", @@ -1354,6 +1355,7 @@ "Support": "Поддержка", "SupportedProtocol": "Протоколы", "SupportedProtocolHelpText": "Настройте поддерживаемые активом протоколы, нажав кнопку настройки, вы сможете изменить пользовательскую конфигурацию для протоколов, такие как каталог SFTP, домен RDP AD и т.д.", + "SupportedTypes": "Поддерживаемые типы", "Sync": "Синхронизация", "SyncAction": "Синхронное действие", "SyncDelete": "Синхронное удаление", @@ -1527,6 +1529,7 @@ "UserCreate": "Создать пользователя", "UserData": "Данные пользователя", "UserDetail": "Информация о пользователе", + "UserGroup": "Группа пользователей", "UserGroupCreate": "Создать группу пользователей", "UserGroupDetail": "Подробности группы пользователей", "UserGroupList": "Группы", diff --git a/apps/i18n/lina/vi.json b/apps/i18n/lina/vi.json new file mode 100644 index 000000000..9cfd99dfb --- /dev/null +++ b/apps/i18n/lina/vi.json @@ -0,0 +1,1631 @@ +{ + "ACLs": "Kiểm soát truy cập", + "APIKey": "Khóa API", + "AWS_China": "AWS (Trung Quốc)", + "AWS_Int": "AWS (Quốc tế)", + "About": "Về", + "Accept": "Đồng ý", + "AccessDistribution": "Phân bố truy cập", + "AccessIP": "Danh sách trắng IP", + "AccessKey": "Khóa truy cập", + "Account": "Tài khoản", + "AccountActivities": "Tài khoản hoạt động", + "AccountAndPasswordChangeRank": "Thay đổi mật khẩu tài khoản xếp hạng", + "AccountAutomationOverview": "Tổng quan về tự động hóa", + "AccountAutomationReport": "Báo cáo tự động tài khoản", + "AccountBackup": "sao lưu tài khoản", + "AccountBackupCreate": "Tạo bản sao tài khoản", + "AccountBackupDetail": "Chi tiết sao lưu tài khoản", + "AccountBackupList": "Danh sách sao lưu tài khoản", + "AccountBackupTask": "Nhiệm vụ sao lưu tài khoản", + "AccountBackupUpdate": "Cập nhật sao lưu tài khoản", + "AccountChangeSecret": "Thay đổi mật khẩu tài khoản", + "AccountChangeSecretDetail": "Chi tiết thay đổi mật khẩu tài khoản", + "AccountConnectivityStatusDistribution": "Tình trạng khả năng kết nối tài khoản phân bố", + "AccountCreationSourceDistribution": "Phân bố nguồn gốc tạo tài khoản", + "AccountData": "Dữ liệu tài khoản", + "AccountDeleteConfirmMsg": "Xóa tài khoản, có tiếp tục không?", + "AccountDeleted": "Xóa tài khoản", + "AccountDiscover": "Phát hiện tài khoản", + "AccountDiscoverDetail": "Chi tiết phát hiện tài khoản", + "AccountDiscoverTask": "Phát hiện tài khoản", + "AccountDiscoverTaskCreate": "tạo nhiệm vụ khám phá tài khoản", + "AccountDiscoverTaskUpdate": "Cập nhật nhiệm vụ phát hiện tài khoản", + "AccountExportTips": "Thông tin xuất ra chứa mật văn tài khoản liên quan đến thông tin nhạy cảm, định dạng xuất ra là một tệp zip được mã hóa (nếu không đặt mật khẩu mã hóa, vui lòng đến thông tin cá nhân để cài đặt mật khẩu mã hóa tệp).", + "AccountList": "Quản lý tài khoản", + "AccountOverview": "Tổng quan tài khoản", + "AccountPasswordChangeTrends": "Xu hướng thay đổi mật khẩu tài khoản", + "AccountPolicy": "Tài khoản Chiến lược", + "AccountPolicyHelpText": "Khi tạo tài khoản không符合 yêu cầu, chẳng hạn như: loại khóa không hợp lệ, ràng buộc khóa duy nhất, có thể chọn các chính sách trên.", + "AccountPushCreate": "Đẩy tạo tài khoản", + "AccountPushDetail": "Chi tiết đẩy tài khoản", + "AccountPushList": "Đẩy tài khoản", + "AccountPushTask": "Nhiệm vụ đẩy tài khoản", + "AccountPushUpdate": "Cập nhật thông tin tài khoản", + "AccountReport": "Báo cáo tài khoản", + "AccountResult": "Thay đổi mật khẩu tài khoản thành công/thất bại", + "AccountSelectHelpText": "Danh sách tài khoản thêm tên người dùng của tài khoản", + "AccountSessions": "Phiên tài khoản", + "AccountStatisticsReport": "Báo cáo thống kê tài khoản", + "AccountStorage": "Lưu trữ tài khoản", + "AccountSummary": "Tóm tắt tài khoản", + "AccountTemplate": "Mẫu tài khoản", + "AccountTemplateList": "Danh sách mẫu tài khoản", + "AccountTemplateUpdateSecretHelpText": "Danh sách tài khoản hiển thị tài khoản được tạo qua mẫu. Khi cập nhật mật mã, sẽ cập nhật mật mã của tài khoản được tạo qua mẫu.", + "AccountTotal": "Tổng số tài khoản", + "AccountType": "Loại tài khoản", + "Accounts": "Tài khoản", + "Action": "Action", + "ActionCount": "Số lượng Action", + "ActionSetting": "Cài đặt Action", + "Actions": "Hành động.", + "ActionsTips": "Mỗi quyền hạn có tác dụng khác nhau, nhấp vào biểu tượng phía sau quyền để xem", + "Activate": "Kích hoạt", + "ActivateSelected": "Kích hoạt đã chọn", + "ActivateSuccessMsg": "Kích hoạt thành công", + "Active": "Kích hoạt", + "ActiveAsset": "Gần đây đã được đăng nhập", + "ActiveAssetRanking": "Xếp hạng tài sản đăng nhập", + "ActiveUser": "Đã đăng nhập gần đây", + "ActiveUsers": "Người dùng hoạt động", + "Activity": "hành động", + "Add": "Thêm mới", + "AddAccount": "Thêm tài khoản mới", + "AddAccountAfterChangingPassword": "Thêm tài khoản sau khi sửa đổi mật khẩu", + "AddAccountByTemplate": "Thêm tài khoản từ mẫu", + "AddAccountResult": "Kết quả thêm tài khoản hàng loạt", + "AddAllMembersWarningMsg": "Bạn có chắc chắn muốn thêm tất cả thành viên không?", + "AddAsset": "Thêm tài sản", + "AddAssetInDomain": "Thêm tài sản vào miền", + "AddAssetInZone": "Thêm tài sản vào miền", + "AddAssetToNode": "Thêm tài sản vào nút", + "AddAssetToThisPermission": "Thêm tài sản", + "AddGatewayInDomain": "Thêm cổng vào miền", + "AddGatewayInZone": "Thêm cổng vào miền", + "AddInDetailText": "Ghi chép", + "AddNode": "Thêm nút", + "AddNodeToThisPermission": "Thêm nút", + "AddPassKey": "Thêm Passkey", + "AddRolePermissions": "Sau khi tạo/cập nhật thành công, thêm quyền vào chi tiết", + "AddSuccessMsg": "Mã mới.", + "AddUserGroupToThisPermission": "Thêm nhóm người dùng", + "AddUserToThisPermission": "Thêm người dùng", + "AddVariable": "Thêm tham số", + "Address": "Địa chỉ", + "AdhocCreate": "Tạo lệnh", + "AdhocDetail": "Chi tiết lệnh", + "AdhocManage": "Quản lý kịch bản", + "AdhocUpdate": "Lệnh cập nhật", + "Advanced": "Cài đặt nâng cao", + "AfterChange": "Sau khi thay đổi.", + "AjaxError404": "Lỗi yêu cầu 404", + "AlibabaCloud": "Alibaba Cloud", + "Aliyun": "Alibaba Cloud", + "All": "Tất cả", + "AllAccountTip": "Tất cả các tài khoản đã được thêm vào tài sản", + "AllAccounts": "Tất cả tài khoản", + "AllClickRead": "Tất cả đã đọc", + "AllMembers": "tất cả thành viên", + "AllowInvalidCert": "Bỏ qua kiểm tra chứng chỉ", + "AmazonSecretsManager": "Amazon Secrets Manager", + "Announcement": "Thông báo", + "AnonymousAccount": "Tài khoản ẩn danh", + "AnonymousAccountTip": "Khi kết nối với tài sản, không sử dụng tên người dùng và mật khẩu, chỉ hỗ trợ loại tài sản web và loại tùy chỉnh", + "ApiKey": "Khóa API", + "ApiKeyList": "Sử dụng khóa API để ký xác thực trong tiêu đề yêu cầu, từng yêu cầu sẽ có tiêu đề khác nhau, an toàn hơn so với phương pháp Token, vui lòng tham khảo tài liệu để sử dụng;
Để giảm thiểu rủi ro rò rỉ, Secret chỉ có thể xem được khi tạo, mỗi người dùng tối đa hỗ trợ tạo 10 cái", + "ApiKeyWarning": "Để giảm thiểu rủi ro lộ AccessKey, chỉ cung cấp Secret khi tạo, không thể tra cứu sau này, xin hãy lưu giữ cẩn thận.", + "AppEndpoint": "Địa chỉ kết nối ứng dụng", + "AppOps": "Trung tâm nhiệm vụ", + "AppProvider": "Nhà cung cấp ứng dụng", + "AppProviderDetail": "Chi tiết nhà cung cấp ứng dụng", + "AppletDetail": "Ứng dụng từ xa", + "AppletHelpText": "Trong quá trình tải lên, nếu ứng dụng không tồn tại, hãy tạo ứng dụng đó; nếu đã tồn tại, hãy tiến hành cập nhật ứng dụng.", + "AppletHostCreate": "Thêm máy phát ứng dụng từ xa", + "AppletHostDetail": "Chi tiết máy phát ứng dụng từ xa", + "AppletHostSelectHelpMessage": "Khi kết nối tài sản, việc chọn máy phát ứng dụng là ngẫu nhiên (nhưng ưu tiên chọn máy đã sử dụng lần trước), nếu muốn cố định máy phát cho một tài sản cụ thể, có thể chỉ định nhãn <发布机: tên máy phát> hoặc ;
Khi chọn tài khoản cho máy phát này, trong các trường hợp sau sẽ chọn tài khoản có cùng tên hoặc tài khoản riêng (bắt đầu bằng js) của người dùng, nếu không sẽ sử dụng tài khoản công cộng (bắt đầu bằng jms):
  1. Máy phát và ứng dụng đều hỗ trợ đồng thời;
  2. Máy phát hỗ trợ đồng thời, ứng dụng không hỗ trợ đồng thời, ứng dụng hiện tại không sử dụng tài khoản riêng;
  3. Máy phát không hỗ trợ đồng thời, ứng dụng hỗ trợ hoặc không hỗ trợ, không có ứng dụng nào sử dụng tài khoản riêng;
Lưu ý: Ứng dụng có hỗ trợ đồng thời hay không là do nhà phát triển quyết định, việc máy chủ có hỗ trợ hay không là do cấu hình trong máy phát thuộc về người dùng đơn lẻ", + "AppletHostUpdate": "Cập nhật công cụ phát hành từ xa", + "AppletHostZoneHelpText": "Miền ở đây thuộc về tổ chức System", + "AppletHosts": "Ứng dụng phát hành", + "Applets": "Ứng dụng từ xa", + "Applicant": "Người nộp đơn", + "ApplicationDetail": "Chi tiết ứng dụng", + "Applications": "Lưu ý: Sẽ hiển thị trên trang đăng nhập của người dùng phiên bản doanh nghiệp (khuyến nghị kích thước hình ảnh là: 492*472px)", + "ApplyAsset": "Đăng ký tài sản", + "ApplyFromCMDFilterRule": "Quy tắc lọc lệnh", + "ApplyFromSession": "Ủy quyền tài sản cho phép bạn chọn người dùng và tài sản, cấp quyền truy cập tài sản cho người dùng. Khi ủy quyền hoàn tất, người dùng có thể dễ dàng duyệt qua các tài sản này. Bên cạnh đó, bạn cũng có thể thiết lập các quyền cụ thể để định nghĩa rõ hơn phạm vi quyền hạn của người dùng đối với tài sản.", + "ApplyInfo": "Thông tin yêu cầu", + "ApplyLoginAccount": "Đăng nhập tài khoản", + "ApplyLoginAsset": "Đăng nhập tài sản", + "ApplyLoginUser": "Đăng nhập người dùng", + "ApplyRunAsset": "Tài sản ứng dụng chạy", + "ApplyRunCommand": "Lệnh yêu cầu chạy", + "ApplyRunUser": "Người dùng đăng ký chạy", + "Appoint": "Chỉ định", + "ApprovaLevel": "Thông tin phê duyệt", + "ApprovalLevel": "Cấp độ phê duyệt", + "ApprovalProcess": "Quy trình phê duyệt", + "ApprovalSelected": "Phê duyệt hàng loạt", + "Approved": "Đã đồng ý", + "ApproverNumbers": "Số lượng người phê duyệt", + "ApsaraStack": "Điện toán đám mây riêng của Alibaba", + "Asset": "Tài sản", + "AssetACLCreate": "Tạo quy tắc đăng nhập tài sản", + "AssetACLDetail": "Chi tiết quy tắc đăng nhập tài sản", + "AssetACLUpdate": "Cập nhật quy tắc đăng nhập tài sản", + "AssetACLs": "Kết nối tài sản", + "AssetAccount": "Kết quả thêm tài khoản hàng loạt", + "AssetAccountDetail": "Chi tiết tài khoản", + "AssetActivityReport": "Báo cáo hoạt động tài sản", + "AssetAddress": "Tài sản (IP/Tên máy chủ)", + "AssetAmount": "Số lượng tài sản", + "AssetAndNode": "Tài sản/Nút", + "AssetBulkUpdateTips": "Thiết bị mạng, dịch vụ đám mây, web, không hỗ trợ cập nhật hàng loạt miền", + "AssetChangeSecretCreate": "Tạo tài khoản đổi mật khẩu", + "AssetChangeSecretUpdate": "Cập nhật mật khẩu tài khoản", + "AssetConnect": "Kết nối tài sản", + "AssetData": "Dữ liệu tài sản", + "AssetDetail": "Chi tiết tài sản", + "AssetList": "Danh sách tài sản", + "AssetListHelpMessage": "Bên trái là cây tài sản, nhấp chuột phải để tạo mới, xóa hoặc thay đổi nút trong cây, việc phân quyền tài sản cũng được tổ chức theo cách nút, bên phải là tài sản thuộc về nút đó.", + "AssetLoginACLHelpMsg": "Khi đăng nhập vào tài sản, có thể tiến hành kiểm tra dựa trên IP đăng nhập và khoảng thời gian của người dùng để xác định xem có thể đăng nhập vào tài sản hay không", + "AssetLoginACLHelpText": "Chứng thực MFA", + "AssetLoginTrends": "Xu hướng đăng nhập tài sản", + "AssetName": "Tên tài sản", + "AssetOverview": "Tổng quan về tài sản", + "AssetPermission": "Thêm thành công", + "AssetPermissionCreate": "Tạo quy tắc phân quyền tài sản", + "AssetPermissionDetail": "Chi tiết phân quyền tài sản", + "AssetPermissionHelpMsg": "Cài đặt tham số thay đổi mật khẩu, hiện tại chỉ có hiệu lực đối với các tài sản loại máy chủ.", + "AssetPermissionRules": "quy định cấp phép tài sản", + "AssetPermissionUpdate": "Cập nhật quy tắc cấp quyền tài sản", + "AssetPermsAmount": "Số lượng tài sản được ủy quyền", + "AssetProtocolHelpText": "Các giao thức hỗ trợ tài sản bị giới hạn bởi nền tảng, nhấn nút cài đặt để xem các thiết lập giao thức. Nếu cần cập nhật, vui lòng cập nhật nền tảng.", + "AssetReport": "Báo cáo tài sản", + "AssetStatisticsReport": "Báo cáo thống kê tài sản", + "AssetTree": "Cây tài sản", + "AssetTypeDistribution": "Phân bố loại tài sản", + "Assets": "Quản lý tài sản", + "AssetsAmount": "Số lượng tài sản", + "AssetsOfNumber": "Số lượng tài sản", + "AssetsSelected": "Tài sản đã chọn", + "AssetsTotal": "Tổng tài sản", + "AssignedInfo": "Thông tin phê duyệt", + "Assignee": "Xử lý người dùng", + "Assignees": "Người chờ xử lý", + "AttrName": "Tên thuộc tính", + "AttrValue": "Giá trị thuộc tính", + "Audits": "Bảng kiểm tra", + "AuditsDashboard": "Bảng điều khiển kiểm toán", + "Auth": "Cài đặt xác thực", + "AuthConfig": "Cấu hình xác thực", + "AuthIntegration": "Tích hợp xác thực", + "AuthLimit": "Giới hạn đăng nhập", + "AuthSAMLCertHelpText": "Lưu sau khi tải lên khóa chứng chỉ, sau đó xem SP Metadata", + "AuthSAMLKeyHelpText": "Chứng chỉ và khóa SP được sử dụng để mã hóa giao tiếp với IDP", + "AuthSaml2UserAttrMapHelpText": "Phía bên trái là thuộc tính người dùng SAML2, phía bên phải là thuộc tính người dùng của nền tảng xác thực.", + "AuthSecurity": "An ninh xác thực", + "AuthSettings": "Chứng thực cấu hình", + "AuthUserAttrMapHelpText": "Phía bên trái là thuộc tính người dùng JumpServer, phía bên phải là thuộc tính người dùng từ nền tảng xác thực", + "Authentication": "Xác thực", + "AuthorizedKeysChanged": "Thay đổi khóa", + "AutoPush": "Đẩy tự động", + "Automation": "Tự động hóa", + "AverageTimeCost": "Thời gian trung bình tiêu tốn", + "AwaitingMyApproval": "Chờ phê duyệt.", + "Azure": "Azure (Trung Quốc)", + "AzureKeyVault": "Azure vault", + "Azure_Int": "Azure (Quốc tế)", + "Backup": "Sao lưu", + "BackupAccountsHelpText": "Sao lưu thông tin tài khoản sang hệ thống bên ngoài. Có thể lưu trữ tại hệ thống bên ngoài hoặc gửi qua email, hỗ trợ phương thức phân đoạn", + "BadConflictErrorMsg": "Đang được làm mới, vui lòng thử lại sau", + "BadRequestErrorMsg": "Yêu cầu lỗi, vui lòng kiểm tra lại nội dung đã điền", + "BadRoleErrorMsg": "Lỗi yêu cầu, không có quyền thực hiện thao tác này", + "BaiduCloud": "Baidu Cloud", + "BaseAccount": "Tài khoản", + "BaseAccountBackup": "Tài khoản sao lưu", + "BaseAccountChangeSecret": "Thay đổi mật khẩu tài khoản", + "BaseAccountPush": "Đẩy tài khoản", + "BaseAccountTemplate": "Mẫu tài khoản", + "BaseApplets": "Ứng dụng", + "BaseAssetACLs": "Quyền truy cập đăng nhập", + "BaseAssetList": "Danh sách tài sản", + "BaseAssetPermission": "Quyền tài sản", + "BaseCloudAccountList": "Danh sách tài khoản đám mây", + "BaseCloudSync": "Đồng bộ đám mây", + "BaseCmdACL": "Ủy quyền lệnh", + "BaseCmdGroups": "Nhóm lệnh", + "BaseCommandFilterACLs": "lọc lệnh", + "BaseConnectMethodACL": "Cách thức kết nối được cấp phép", + "BaseFlowSetUp": "Cài đặt quy trình", + "BaseJobManagement": "Quản lý công việc", + "BaseLoginLog": "Nhật ký đăng nhập", + "BaseMyAssets": "Tài sản của tôi", + "BaseOperateLog": "Nhật ký hành động", + "BasePort": "Cổng lắng nghe", + "BaseSessions": "Phiên giao dịch", + "BaseStorage": "Lưu trữ", + "BaseStrategy": "Chính sách", + "BaseSystemTasks": "Nhiệm vụ", + "BaseTags": "Thẻ", + "BaseTerminal": "Thiết bị đầu cuối", + "BaseTickets": "Danh sách công việc", + "BaseUserLoginACLs": "Người dùng đăng nhập", + "Basic": "Cài đặt cơ bản", + "BasicInfo": "thông tin cơ bản", + "BasicSettings": "Cài đặt cơ bản", + "BatchConsent": "Đồng ý hàng loạt", + "BatchDeployment": "Triển khai hàng loạt", + "BatchProcessing": "Xử lý hàng loạt (chọn {number} mục)", + "BatchReject": "Từ chối hàng loạt", + "BatchTest": "Kiểm tra hàng loạt", + "BeforeChange": "Trước khi thay đổi", + "Beian": "Hiệu lực", + "BelongAll": "Cũng bao gồm", + "BelongTo": "Bất kỳ chứa", + "Bind": "Liên kết", + "BindLabel": "Gán nhãn", + "BindResource": "Tài nguyên liên quan", + "BindSuccess": "Ràng buộc thành công", + "BiometricFeatures": "Dấu hiệu sinh học", + "BlockedIPS": "Địa chỉ IP đã bị khóa", + "BuiltinVariable": "Biến tích hợp sẵn", + "BulkClearErrorMsg": "Xóa hàng loạt không thành công:", + "BulkDeleteErrorMsg": "Xóa hàng loạt không thành công:", + "BulkDeleteSuccessMsg": "Xóa hàng loạt thành công", + "BulkDeploy": "Triển khai hàng loạt", + "BulkRemoveErrorMsg": "Xóa hàng loạt không thành công:", + "BulkRemoveSuccessMsg": "Xóa hàng loạt thành công", + "BulkSyncErrorMsg": "Đồng bộ hóa hàng loạt thất bại:", + "CACertificate": "Chứng chỉ CA", + "CAS": "CAS", + "CMPP2": "CMPP v2.0", + "CTYunPrivate": "Đám mây riêng Tianyi", + "CalculationResults": "Biểu thức cron sai", + "CallRecords": "Ghi chép gọi", + "CanDragSelect": "Có thể kéo chuột để chọn khoảng thời gian; chưa chọn đồng nghĩa với đã chọn tất cả", + "Cancel": "Hủy bỏ", + "CancelCollection": "Hủy bỏ yêu thích", + "CancelTicket": "Hủy công việc.", + "CannotAccess": "Không thể truy cập trang hiện tại", + "Category": "Danh mục", + "CeleryTaskLog": "Nhật ký nhiệm vụ Celery", + "Certificate": "Chứng chỉ", + "CertificateKey": "Khóa khách hàng", + "ChangeCredentials": "Đổi mật khẩu tài khoản", + "ChangeCredentialsHelpText": "Định kỳ thay đổi mật khẩu tài khoản. Mật khẩu được tạo ngẫu nhiên và đồng bộ tới tài sản mục tiêu, nếu đồng bộ thành công, sẽ cập nhật mật khẩu của tài khoản đó.", + "ChangeField": "Thay đổi trường", + "ChangeOrganization": "Thay đổi tổ chức", + "ChangePassword": "Cập nhật mật khẩu", + "ChangePasswordOverview": "Tổng quan thay đổi mật khẩu", + "ChangeSecret": "Đổi mật khẩu tài khoản", + "ChangeSecretAccountHelpText": "Đối với tài khoản trong cùng một tài sản, nếu có sự chuyển đổi tự quan hệ, thì không nên thực hiện việc thay đổi mật khẩu trong cùng một nhiệm vụ, mà nên chia thành hai nhiệm vụ để thực hiện riêng biệt.", + "ChangeSecretDashboard": "Bảng điều khiển thay đổi mật khẩu tài khoản", + "ChangeSecretFailAccounts": "Đổi mật khẩu thất bại cho tài khoản", + "ChangeSecretParams": "Tham số đổi mật khẩu", + "ChangeSecretStatus": "Tình trạng thay đổi mật khẩu.", + "ChangeSecretTask": "Nhiệm vụ đổi mật khẩu tài khoản", + "ChangeViewHelpText": "Chi tiết nhóm lệnh", + "Chat": "Trò chuyện", + "ChatAI": "Hỏi đáp thông minh", + "ChatHello": "Chào bạn! Tôi có thể giúp gì cho bạn?", + "ChdirHelpText": "Thư mục thực thi mặc định là thư mục home của người dùng thực hiện", + "CheckAssetsAmount": "- Kiểm tra số lượng tài sản\n- Sử dụng Api key để ký tên trong tiêu đề yêu cầu để xác thực, mỗi tiêu đề yêu cầu là khác nhau, so với phương thức Token, nó an toàn hơn, vui lòng tham khảo tài liệu để sử dụng;\n- Để giảm thiểu rủi ro rò rỉ, Secret chỉ có thể xem được khi được tạo, mỗi người dùng tối đa hỗ trợ tạo 10 cái.\n- Không có dữ liệu\n- Thay đổi quản lý tài sản\n- Vui lòng tải lên tệp định dạng zip\n- Tài sản\n- Xóa màn hình\n- Hiển thị tất cả các tài sản con\n- Điền vào SID hoặc tên dịch vụ (Service Name) của cơ sở dữ liệu Oracle\n- Nhóm người dùng\n- OAuth2\n- Bỏ qua tài sản hiện tại\n- Loại tài nguyên\n- Xóa đã chọn\n- Bản sao", + "CheckViewAcceptor": "Nhấn để xem người tiếp nhận", + "CleanHelpText": "Nhiệm vụ dọn dẹp định kỳ sẽ được thực hiện vào lúc 2 giờ sáng mỗi ngày, dữ liệu sau khi dọn dẹp sẽ không thể khôi phục", + "Cleaning": "Dọn dẹp định kỳ", + "Clear": "Xóa bỏ", + "ClearErrorMsg": "Xóa không thành công:", + "ClearScreen": "Xóa màn hình", + "ClearSecret": "Xóa mật mã", + "ClearSelection": "Xóa lựa chọn", + "ClearSuccessMsg": "Xóa thành công", + "ClickCopy": "Nhấn để sao chép", + "ClientCertificate": "Chứng chỉ khách hàng", + "Clipboard": "Bảng ghi nhớ", + "ClipboardCopyPaste": "Sao chép và dán từ clipboard", + "Clone": "sao chép", + "Close": "Đóng", + "CloseConfirm": "Xác nhận đóng", + "CloseConfirmMessage": "Tập tin đã thay đổi, có muốn lưu không?< -SEP->Tuần", + "CloseStatus": "Đã hoàn thành", + "Closed": "Đã hoàn thành", + "Cloud": "Đám mây", + "CloudAccountCreate": "Tạo tài khoản nền tảng đám mây", + "CloudAccountDetail": "Chi tiết tài khoản nền tảng đám mây", + "CloudAccountList": "Tài khoản nền tảng đám mây", + "CloudAccountUpdate": "Cập nhật tài khoản nền tảng đám mây", + "CloudCreate": "Tạo tài sản - Nền tảng đám mây", + "CloudRegionTip": "Chưa lấy được khu vực, vui lòng kiểm tra tài khoản", + "CloudSource": "Nhật ký đồng bộ", + "CloudSync": "Đồng bộ đám mây", + "CloudSyncConfig": "Cấu hình đồng bộ đám mây", + "CloudUpdate": "Cập nhật tài sản - Nền tảng đám mây", + "Cluster": "Cụm", + "CollectionSucceed": "Lưu lại thành công", + "Command": "Lệnh", + "CommandConfirm": "Lệnh xác nhận", + "CommandFilter": "Lọc lệnh", + "CommandFilterACL": "Lọc lệnh", + "CommandFilterACLCreate": "Tạo quy tắc lọc lệnh", + "CommandFilterACLDetail": "Chi tiết quy tắc lọc lệnh", + "CommandFilterACLHelpMsg": "Thông qua việc lọc lệnh, bạn có thể kiểm soát xem lệnh có được gửi đến tài sản hay không. Tùy thuộc vào quy tắc bạn thiết lập, một số lệnh có thể được giao phó, trong khi những lệnh khác có thể bị cấm.", + "CommandFilterACLHelpText": "Thông qua bộ lọc lệnh, bạn có thể kiểm soát lệnh nào có thể được gửi đến tài sản. Dựa trên các quy tắc bạn đặt ra, một số lệnh có thể được cho phép, trong khi những lệnh khác bị cấm", + "CommandFilterACLUpdate": "Cập nhật quy tắc lọc lệnh", + "CommandFilterRuleContentHelpText": "Mỗi dòng một lệnh", + "CommandFilterRules": "Quy tắc bộ lọc lệnh", + "CommandGroup": "Nhóm lệnh", + "CommandGroupCreate": "Tạo nhóm hành động", + "CommandGroupDetail": "Quản lý ứng dụng", + "CommandGroupList": "Nhóm lệnh", + "CommandGroupUpdate": "Cập nhật nhóm lệnh", + "CommandStorage": "Lưu trữ lệnh", + "CommandStorageUpdate": "Cập nhật lệnh lưu trữ", + "Commands": "Hồ sơ lệnh", + "CommandsTotal": "Tổng số ghi chép lệnh", + "Comment": "Ghi chú", + "CommentHelpText": "Lưu ý: Thông tin ghi chú sẽ được hiển thị khi di chuột qua cây tài sản ủy quyền của người dùng trên trang Luna, người dùng thông thường có thể xem, xin đừng điền thông tin nhạy cảm.", + "Common": "Loại tin nhắn chung", + "CommunityEdition": "Phiên bản cộng đồng", + "Component": "Thành phần", + "ComponentMonitor": "Giám sát thành phần", + "Components": "Danh sách thành phần", + "ConceptContent": "Tôi muốn bạn hành động như một trình thông dịch Python. Tôi sẽ cung cấp cho bạn mã Python, và bạn sẽ thực thi nó. Đừng cung cấp bất kỳ giải thích nào. Ngoài đầu ra của mã, hãy không phản hồi bằng bất cứ điều gì khác.", + "ConceptTitle": "🤔 Trình biên dịch Python", + "Config": "Cấu hình", + "Configured": "Đã cấu hình", + "Confirm": "Xác nhận", + "ConfirmPassword": "Xác nhận mật khẩu", + "ConfirmRunningAssets": "Xác nhận chạy tài sản", + "Connect": "Kết nối", + "ConnectAssets": "Kết nối tài sản", + "ConnectMethod": "Phương thức kết nối", + "ConnectMethodACLCreate": "Kiểm soát cách tạo kết nối", + "ConnectMethodACLDetail": "Chi tiết kiểm soát kết nối", + "ConnectMethodACLHelpMsg": "Thông qua cách kết nối để lọc, bạn có thể kiểm soát xem người dùng có thể sử dụng loại kết nối nào để đăng nhập vào tài sản. Theo các quy tắc bạn thiết lập, một số cách kết nối có thể được cho phép, trong khi những cách khác thì bị cấm (hiệu lực toàn cầu).", + "ConnectMethodACLHelpText": "Thông qua việc lọc cách kết nối, bạn có thể kiểm soát xem người dùng có thể sử dụng một loại kết nối nào đó để đăng nhập vào tài sản hay không. Dựa trên các quy tắc bạn đặt ra, một số cách kết nối có thể được cho phép, trong khi những cách khác sẽ bị cấm.", + "ConnectMethodACLUpdate": "Cập nhật phương thức kết nối điều khiển", + "ConnectMethodACLs": "Phương thức kết nối", + "ConnectMethodAclDetail": "Chi tiết phương thức kết nối", + "ConnectWebSocketError": "Kết nối WebSocket thất bại", + "Connectable": "Kết nối", + "ConnectedDirectoryServices": "Đã liên kết dịch vụ thư mục", + "ConnectionCount": "Kết nối số lượng", + "ConnectionDropped": "Kết nối đã bị ngắt", + "ConnectionToken": "Mã thông báo kết nối", + "ConnectionTokenList": "Mã kết nối là thông tin xác thực kết hợp xác thực và tài sản kết nối, hỗ trợ người dùng đăng nhập vào tài sản chỉ bằng một cú nhấp chuột. Hiện tại, các thành phần được hỗ trợ bao gồm: KoKo, Lion, Magnus, Razor, v.v.", + "Console": "Bảng điều khiển", + "ConsoleDashboard": "Bảng điều khiển Console", + "Consult": "Tư vấn", + "ContainAttachment": "Bao gồm tài liệu đính kèm", + "Containers": "Container", + "Contains": "Bao gồm", + "Continue": "Tiếp tục", + "ConvenientOperate": "thao tác tiện lợi", + "Copy": "Sao chép", + "CopyFailed": "Sao chép thất bại", + "CopySuccess": "Sao chép thành công", + "CopyToAsset": "Sao chép vào tài sản", + "Corporation": "Công ty", + "Create": "Tạo", + "CreateAccessKey": "Tạo khóa truy cập", + "CreateAccountTemplate": "Tạo mẫu tài khoản", + "CreateCommandStorage": "Tạo lệnh lưu trữ", + "CreateEndpoint": "Tạo điểm dịch vụ", + "CreateEndpointRule": "Tạo quy tắc điểm cuối", + "CreateErrorMsg": "Tạo không thành công", + "CreateNode": "Tạo nút", + "CreatePlaybook": "Tạo Playbook", + "CreateReplayStorage": "Tạo lưu trữ đối tượng", + "CreateSuccessMsg": "Tạo thành công", + "CreateUserContent": "Tạo nội dung người dùng", + "CreateUserSetting": "Tạo nội dung người dùng", + "Created": "Đã tạo", + "CreatedBy": "Người tạo", + "CriticalLoad": "Nghiêm trọng", + "CronExpression": "Biểu thức crontab đầy đủ", + "Crontab": "Nhiệm vụ định kỳ", + "CrontabDiffError": "Xin hãy đảm bảo khoảng thời gian thực hiện định kỳ không dưới {minutes} phút!", + "CrontabHelpText": "Nhà cung cấp dịch vụ tin nhắn", + "CrontabHelpTip": "Ví dụ: Thực hiện vào Chủ nhật hàng tuần lúc 03:05 <5 3 * * 0>
Sử dụng biểu thức crontab linux 5 chữ số (Công cụ trực tuyến)
", + "CrontabOfCreateUpdatePage": "Ví dụ: Thực hiện vào mỗi Chủ nhật lúc 03:05 <5 3 * * 0>
Sử dụng biểu thức crontab Linux 5 ký tự Công cụ trực tuyến
Nếu cùng lúc thiết lập thực hiện định kỳ và thực hiện theo chu kỳ, ưu tiên sử dụng thực hiện định kỳ", + "CurrentConnectionUsers": "Số lượng người dùng hiện tại trong phiên", + "CurrentConnections": "Số lượng kết nối hiện tại", + "CurrentStatus": "Tình trạng hiện tại", + "CurrentUserVerify": "Xác nhận danh tính của bạn", + "Custom": "Tùy chỉnh", + "CustomCol": "Trống", + "CustomCreate": "Tạo tài sản - Tùy chỉnh", + "CustomFields": "Thuộc tính tùy chỉnh", + "CustomFile": "Vui lòng đặt tệp tùy chỉnh vào thư mục chỉ định (data/sms/main.py) và kích hoạt cấu hình trong config.txt với các mục sau: SMS_CUSTOM_FILE_MD5=", + "CustomHelpMessage": "Tài sản loại tùy chỉnh, phụ thuộc vào ứng dụng từ xa, vui lòng truy cập vào cài đặt hệ thống để cấu hình trong ứng dụng từ xa", + "CustomParams": "Bên trái là các tham số nhận từ nền tảng tin nhắn, bên phải là các tham số đang chờ định dạng trên JumpServer, cuối cùng như sau:
{\"phone_numbers\": \"123,134\", \"content\": \"Mã xác thực là: 666666\"}", + "CustomUpdate": "Cập nhật tài sản - Tùy chỉnh", + "CustomUser": "Người dùng tùy chỉnh", + "CycleFromWeek": "Chu kỳ bắt đầu từ tuần", + "CyclePerform": "Thực thi định kỳ", + "Danger": "Nguy hiểm", + "DangerCommand": "Lệnh nguy hiểm", + "DangerousCommandNum": "Số lệnh nguy hiểm", + "Dashboard": "Bảng điều khiển", + "Database": "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", + "DatabaseUpdate": "Cập nhật tài sản - Cơ sở dữ liệu", + "Date": "Ngày tháng", + "DateCreated": "Thời gian tạo", + "DateEnd": "Ngày hết hạn", + "DateExpired": "Ngày hết hạn", + "DateFinished": "Ngày hoàn thành", + "DateJoined": "Ngày tạo", + "DateLast24Hours": "Ngày gần nhất", + "DateLast3Months": "Ba tháng gần đây", + "DateLastHarfYear": "Sáu tháng gần đây", + "DateLastLogin": "Ngày đăng nhập cuối cùng", + "DateLastMonth": "Tháng gần đây", + "DateLastSync": "Ngày đồng bộ cuối cùng", + "DateLastWeek": "Tuần vừa qua", + "DateLastYear": "Năm vừa qua", + "DatePasswordLastUpdated": "Ngày cập nhật mật khẩu cuối cùng", + "DateStart": "Ngày bắt đầu", + "DateSync": "Ngày đồng bộ hóa", + "DateUpdated": "Ngày cập nhật", + "Datetime": "Ngày giờ", + "Day": "Ngày", + "DeclassificationLogNum": "Số lượng nhật ký thay đổi mật khẩu", + "DeeplyThoughtAbout": "Đã suy nghĩ sâu sắc", + "DefaultDatabase": "Cơ sở dữ liệu mặc định", + "DefaultPort": "Cổng mặc định", + "DefaultValue": "Giá trị mặc định", + "DefaultValueTip": "Lưu và thực hiện sử dụng giá trị mặc định, không điền giá trị mặc định có thể dẫn đến việc thực hiện nhiệm vụ thất bại", + "Delete": "Xóa", + "DeleteAccount": "Xóa tài khoản", + "DeleteBoth": "Xóa đồng thời", + "DeleteConfirmMessage": "Không thể phục hồi sau khi xóa, có tiếp tục không?", + "DeleteErrorMsg": "Xóa không thành công", + "DeleteGatherAccountTitle": "Xóa tài khoản đã phát hiện.", + "DeleteNode": "Xóa nút", + "DeleteOrgMsg": "Người dùng, Nhóm người dùng, Tài sản, Nút, Nhãn, Miền, Cấp phép tài sản", + "DeleteOrgTitle": "Vui lòng đảm bảo rằng các tài nguyên sau trong tổ chức đã được xóa", + "DeleteReleasedAssets": "Xóa tài sản đã giải phóng.", + "DeleteRemoteAccount": "Xóa tài khoản từ xa", + "DeleteSelected": "Xóa đã chọn", + "DeleteSuccess": "Xóa thành công", + "DeleteSuccessMsg": "Xóa thành công", + "DeleteWarningMsg": "Bạn có chắc chắn muốn xóa không", + "Deploy": "Triển khai", + "Description": "Mô tả", + "DestinationIP": "Địa chỉ đích", + "DestinationPort": "Cổng đích", + "Detail": "Chi tiết", + "DetectEngines": "Công cụ kiểm tra", + "DetectResults": "Kết quả kiểm tra", + "DetectTasks": "Nhiệm vụ kiểm tra", + "Device": "thiết bị", + "DeviceCreate": "Tạo tài sản - Thiết bị mạng", + "DeviceUpdate": "Cập nhật tài sản - Thiết bị mạng", + "Digit": "Số liệu", + "DingTalk": "DingTalk", + "DingTalkOAuth": "Xác thực DingTalk", + "DingTalkTest": "Kiểm tra", + "DirectoryServiceHelpMessage": "Dịch vụ thư mục (Directory Service) là một dịch vụ dùng để lưu trữ, quản lý và truy vấn thông tin tài nguyên mạng một cách tập trung, các triển khai phổ biến bao gồm LDAP và Active Directory. Những tài sản khác liên kết với dịch vụ thư mục sẽ được thừa hưởng tài khoản từ dịch vụ thư mục.", + "Disable": "Vô hiệu hóa", + "DisableSelected": "Cấm sử dụng đã chọn", + "DisableSuccessMsg": "Vô hiệu hóa thành công", + "Disabled": "Đã bị vô hiệu hóa", + "DiscoverAccountDetail": "Chi tiết phát hiện tài khoản", + "DiscoverAccountTask": "Nhiệm vụ tài khoản phát hiện", + "DiscoverAccounts": "Tài khoản đã phát hiện", + "DiscoverAccountsHelpText": "Thu thập thông tin kế toán tài sản, có thể nhập thông tin kế toán đã thu thập vào hệ thống để thực hiện quản lý tập trung.", + "DiscoveredAccountList": "Tìm thấy tài khoản", + "DisplayName": "Tên", + "DistributionOfAssetLoginMethods": "Phân bố phương thức đăng nhập tài sản", + "Docs": "Tài liệu", + "Documentation": "Tài liệu", + "Download": "Tải xuống", + "DownloadCenter": "Trung tâm tải xuống", + "DownloadImportTemplateMsg": "tải xuống mẫu tạo", + "DownloadReplay": "Tải video xuống", + "DownloadUpdateTemplateMsg": "Tải xuống mẫu cập nhật", + "DragUploadFileInfo": "Kéo tệp vào đây, hoặc nhấp vào đây để tải lên", + "DropConfirmMsg": "Bạn có muốn di chuyển nút: {src} đến {dst} không?", + "Duplicate": "Bản sao", + "DuplicateFileExists": "Không cho phép tải lên tệp có tên giống nhau, vui lòng xóa tệp có tên giống nhau", + "Duration": "Thời gian", + "DynamicUsername": "Tên người dùng động", + "EMailReport": "Gửi báo cáo qua email", + "Edit": "Chỉnh sửa", + "EditRecipient": "chỉnh sửa người nhận", + "EditSecret": "Chỉnh sửa văn bản mã hóa", + "Edition": "Phiên bản", + "Effective": "Có hiệu lực", + "Email": "Email", + "EmailContent": "Tùy chỉnh nội dung email", + "EmailHelpText": "Vui lòng nhấp vào nút 'Gửi' để lưu cấu hình hiện tại, sau đó nhấp vào 'Kiểm tra kết nối' để đảm bảo thông tin có hiệu lực", + "EmailTemplate": "Mẫu email", + "EmailTemplateHelpTip": "Mẫu email dùng để gửi email, bao gồm tiền tố tiêu đề email và nội dung email", + "EmailTest": "Kiểm tra kết nối", + "Empty": "Tỷ lệ loại tài sản", + "EmptyPassword": "Mật khẩu rỗng", + "Enable": "Kích hoạt", + "EnableDomain": "Kích hoạt miền", + "EnableGateway": "Kích hoạt cổng mạng miền", + "EnableKoKoSSHHelpText": "Khi bật, kết nối với tài sản sẽ hiển thị cách SSH Client khởi động", + "Endpoint": "Điểm dịch vụ", + "EndpointListHelpMessage": "Điểm dịch vụ là địa chỉ (cổng) mà người dùng truy cập dịch vụ, khi người dùng kết nối với tài sản, sẽ dựa trên quy tắc điểm dịch vụ và nhãn tài sản để chọn điểm dịch vụ, như một cổng vào để thiết lập kết nối, thực hiện việc kết nối tài sản phân tán", + "EndpointRuleListHelpMessage": "Đối với chính sách chọn điểm dịch vụ, hiện tại hỗ trợ hai loại:
1. Chỉ định điểm theo quy tắc điểm (trang hiện tại);
2. Chọn điểm thông qua nhãn tài sản, tên nhãn cố định là endpoint, giá trị là tên điểm.
Ưu tiên sử dụng phương thức nhãn, vì dải IP có thể xung đột, phương thức nhãn được coi là một bổ sung cho quy tắc.", + "EndpointRules": "Quy tắc điểm cuối", + "Endpoints": "Điểm cuối dịch vụ", + "Endswith": "Kết thúc bằng...", + "EnsureThisValueIsGreaterThanOrEqualTo1": "Vui lòng đảm bảo giá trị này lớn hơn hoặc bằng 1", + "EnterForSearch": "Nhấn Enter để tìm kiếm", + "EnterRunUser": "Nhập người dùng chạy", + "EnterRunningPath": "Nhập đường dẫn chạy.", + "EnterToContinue": "Nhấn Enter để tiếp tục nhập", + "EnterUploadPath": "Nhập đường dẫn tải lên", + "Enterprise": "Phiên bản doanh nghiệp", + "EnterpriseEdition": "Phiên bản doanh nghiệp", + "Equal": "Bằng với", + "Error": "Lỗi", + "ErrorMsg": "Lỗi", + "EsDisabled": "Nút không khả dụng, vui lòng liên hệ quản lý", + "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", + "Every": "Mỗi", + "Exclude": "Không chứa", + "ExcludeAccount": "Loại trừ tài khoản", + "ExcludeAsset": "Tài sản đã bỏ qua", + "ExcludeSymbol": "loại bỏ ký tự", + "ExecCloudSyncErrorMsg": "Cấu hình tài khoản đám mây không đầy đủ, vui lòng cập nhật và thử lại", + "Execute": "Thực hiện", + "ExecuteAfterSaving": "Thực hiện sau khi lưu", + "ExecuteOnce": "Thực hiện một lần", + "ExecutionDetail": "Chi tiết hành động", + "ExecutionHistory": "Lịch sử thực hiện", + "ExecutionID": "ID hành động", + "ExecutionList": "Danh sách thực hiện", + "ExecutionRecord": "Biên bản thực hiện", + "ExecutionSummary": "Thực hiện tổng hợp", + "ExistError": "Yếu tố này đã tồn tại", + "Existing": "Đã tồn tại", + "ExpirationTimeout": "Thời gian hết hạn (giây)", + "Expire": "Hết hạn", + "Expired": "Thời gian hết hạn", + "Export": "Xuất ra", + "ExportAll": "Xuất tất cả", + "ExportAsPDF": "Xuất PDF", + "ExportOnlyFiltered": "Chỉ xuất kết quả tìm kiếm", + "ExportOnlySelectedItems": "Chỉ xuất các mục đã chọn", + "ExportRange": "Phạm vi xuất khẩu", + "ExtraArgsFormatError": "Định dạng sai, vui lòng nhập theo yêu cầu", + "ExtraArgsPlaceholder": "Mỗi dòng là một tùy chọn, ví dụ: \nTùy chọn 1: Giá trị 1 \nTùy chọn 2: Giá trị 2", + "FC": "Fusion Compute", + "FTPFileNotStored": "Tệp vẫn chưa được lưu vào bộ nhớ, vui lòng kiểm tra lại sau", + "FTPStorageNotEnabled": "Chức năng lưu trữ tệp chưa được bật, vui lòng sửa đổi tệp cấu hình và thêm cấu hình: FTP_FILE_MAX_STORE=100 (hỗ trợ lưu trữ tệp dưới 100M)", + "FTPUnknownStorageState": "Trạng thái lưu trữ tệp không xác định, vui lòng liên hệ với quản lý.", + "FaceVector": "Thông tin khuôn mặt", + "FacialFeatures": "Đặc trưng khuôn mặt", + "Failed": "Thất bại", + "FailedAsset": "Tài sản thất bại", + "FaviconTip": "Nhắc nhở: Biểu tượng trang web (đề xuất kích thước hình ảnh: 16px*16px)", + "Features": "Thiết lập chức năng", + "FeiShu": "Flybook", + "FeiShuOAuth": "Xác thực Feishu", + "FeiShuTest": "Kiểm tra", + "FieldRequiredError": "Trường này là bắt buộc phải điền", + "FileExplorer": "Quản lý tệp", + "FileManagement": "Quản lý tệp tin", + "FileNameTooLong": "Tên file quá dài", + "FileSizeExceedsLimit": "Kích thước tệp vượt quá giới hạn", + "FileTransfer": "Chuyển file", + "FileTransferBootStepHelpTips1": "Sau khi tạo hoặc cập nhật thành công, thêm thông tin chi tiết", + "FileTransferBootStepHelpTips2": "Chọn tài khoản chạy và nhập lệnh", + "FileTransferBootStepHelpTips3": "Truyền tải, hiển thị kết quả đầu ra", + "FileTransferNum": "Truyền tải tài liệu", + "FileType": "Loại tệp", + "Filename": "Tên tệp", + "FingerPrint": "Dấu vân tay", + "Finished": "Hoàn tất", + "FinishedTicket": "Hoàn thành công việc", + "FirstLogin": "Lần đầu đăng nhập", + "FlowSetUp": "Cài đặt quy trình", + "Footer": "Chân trang", + "ForgotPasswordURL": "Quên liên kết mật khẩu", + "FormatError": "Định dạng không hợp lệ", + "FoundAccountInAssetDeleteMsg": "Xóa tài khoản phát hiện từ tài sản hệ thống", + "Friday": "Thứ Sáu", + "From": "Từ", + "FromTicket": "Từ các đơn công việc", + "FullName": "Tên đầy đủ", + "FullySynchronous": "Đồng bộ tài sản hoàn toàn", + "FullySynchronousHelpTip": "Khi các điều kiện tài sản không đáp ứng quy tắc chính sách có tiếp tục đồng bộ tài sản đó không", + "GCP": "Google Cloud", + "GPTCreate": "Tạo tài sản-GPT", + "GPTUpdate": "Cập nhật tài sản - GPT", + "Gateway": "Cổng vào", + "GatewayCreate": "Tạo cổng", + "GatewayList": "Danh sách cổng kết nối", + "GatewayPlatformHelpText": "Nền tảng cổng chỉ có thể chọn những nền tảng bắt đầu bằng Gateway", + "GatewayUpdate": "Cập nhật cổng", + "General": "Cơ bản", + "GeneralAccounts": "Tài khoản thông thường", + "GeneralSetting": "Cập nhật nhóm người dùng", + "Generate": "Tạo ra", + "GenerateAccounts": "Tạo lại tài khoản", + "GenerateSuccessMsg": "Tạo tài khoản thành công", + "GoHomePage": "Về trang chủ", + "Goto": "Chuyển đến", + "GrantedAssets": "Tài sản được cấp phép", + "GreatEqualThan": "Danh sách tài khoản", + "GroupsAmount": "Nhóm người dùng", + "GroupsChanged": "Thay đổi nhóm", + "HTTPSRequiredForSupport": "Cần hỗ trợ HTTPS để kích hoạt", + "HandleTicket": "Xử lý phiếu công việc", + "Hardware": "Thông tin phần cứng", + "HardwareInfo": "Thông tin phần cứng", + "HasImportErrorItemMsg": "Có mục nhập không thành công, nhấn vào x bên trái để xem lý do thất bại, nhấn sửa bảng sau đó có thể tiếp tục nhập mục không thành công", + "HashicorpVault": "Ngân hàng HCP", + "Help": "Giúp đỡ", + "HighLoad": "Cao hơn", + "HistoricalSessionNum": "Số lượng phiên lịch sử", + "History": "Lịch sử", + "HistoryDate": "Ngày", + "HistoryPassword": "Mật khẩu lịch sử", + "HistoryRecord": "Lịch sử", + "Host": "Máy chủ", + "HostCreate": "Tạo tài sản - máy chủ", + "HostDeployment": "Triển khai máy phát hành", + "HostUpdate": "Cập nhật tài sản - máy chủ", + "HostnameStrategy": "Dùng để tạo tên máy chủ tài sản. Ví dụ: 1. Tên phiên bản (instanceDemo); 2. Tên phiên bản và một phần IP (hai chữ số cuối) (instanceDemo-250.1)", + "Hour": "Giờ", + "HuaweiCloud": "Huawei Cloud", + "HuaweiPrivateCloud": "Đám mây riêng Huawei", + "IAgree": "Tôi đồng ý", + "ID": "ID", + "IP": "IP", + "IPLoginLimit": "Giới hạn đăng nhập IP", + "IPMatch": "Khớp IP", + "IPNetworkSegment": "Phân đoạn IP", + "IPType": "Loại IP", + "Id": "ID", + "IdP": "Nhà cung cấp danh tính", + "IdeaContent": "Tôi muốn bạn đóng vai trò như một terminal Linux. Tôi sẽ nhập lệnh, và bạn sẽ trả lời những gì terminal nên hiển thị. Tôi hy vọng bạn chỉ trả lời trong một khối mã duy nhất mà không thêm bất kỳ điều gì khác. Đừng viết giải thích. Khi tôi cần nói với bạn điều gì đó, tôi sẽ đặt văn bản trong dấu ngoặc nhọn {Văn bản ghi chú}.", + "IdeaTitle": "🌱 Terminal Linux", + "IdentityDomain": "Miền danh tính", + "IdpMetadataHelpText": "IDP Metadata URL và tham số IDP Metadata XML có thể chọn một trong hai, ưu tiên IDP Metadata URL", + "IdpMetadataUrlHelpText": "Tải metadata IDP từ địa chỉ từ xa", + "IgnoreAlert": "Bỏ qua cảnh báo", + "IgnoreFail": "Bỏ qua thất bại", + "ImageName": "Tên hình ảnh", + "Images": "Hình ảnh", + "Import": "Nhập khẩu", + "ImportAll": "Nhập tất cả", + "ImportFail": "Nhập không thành công", + "ImportLdapUserTip": "Vui lòng gửi cấu hình LDAP trước khi thực hiện nhập khẩu.", + "ImportLdapUserTitle": "Danh sách người dùng LDAP", + "ImportLicense": "Nhập giấy phép", + "ImportLicenseTip": "Vui lòng nhập giấy phép", + "ImportMessage": "Vui lòng truy cập trang tương ứng để nhập dữ liệu", + "ImportOrg": "Nhập tổ chức", + "InActiveAsset": "Chưa được đăng nhập gần đây", + "InActiveUser": "Gần đây chưa đăng nhập", + "InAssetDetail": "Cập nhật thông tin tài khoản trong chi tiết tài sản", + "Inactive": "Vô hiệu hóa", + "Index": "Chỉ số", + "Info": "Thông tin", + "InformationModification": "Thay đổi thông tin", + "InheritPlatformConfig": "Kế thừa từ cấu hình của nền tảng, nếu cần thay đổi, hãy thay đổi cấu hình trong nền tảng.", + "InitialDeploy": "Khởi tạo triển khai", + "Input": "Nhập vào", + "InputEmailAddress": "Vui lòng nhập địa chỉ email hợp lệ", + "InputMessage": "Nhập tin nhắn...", + "InputPhone": "Vui lòng nhập số điện thoại", + "Insert": "Chèn", + "InstanceAddress": "Địa chỉ实例", + "InstanceName": "Tên phiên bản", + "InstanceNamePartIp": "Tên phiên bản và một số IP", + "InstancePlatformName": "Tên nền tảng实例", + "Integration": "WebSocket đã ngắt kết nối", + "Interface": "giao diện mạng", + "InterfaceSettings": "Cài đặt giao diện", + "Interval": "Khoảng cách", + "IntervalOfCreateUpdatePage": "Đơn vị: giờ", + "Invalid": "Không hợp lệ", + "InvalidJson": "Không phải JSON hợp lệ", + "InviteSuccess": "Mời thành công", + "InviteUser": "Mời người dùng", + "InviteUserInOrg": "Mời người dùng tham gia tổ chức này", + "IpGroup": "Nhóm IP", + "IpGroupHelpText": "* Biểu thị cho tất cả các phù hợp. Ví dụ: 192.168.10.1, 192.168.1.0/24, 10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64", + "IsActive": "Kích hoạt", + "IsAlwaysUpdate": "Giữ tài sản luôn cập nhật", + "IsAlwaysUpdateHelpTip": "Có đồng bộ cập nhật thông tin tài sản trong mỗi lần thực hiện tác vụ đồng bộ hay không, bao gồm tên máy chủ, ip, nền tảng, miền, nút, v.v..<–SEP->Trường danh sách tùy chỉnh", + "IsFinished": "Hoàn tất", + "IsLocked": "Có tạm ngừng không", + "IsSuccess": "Thành công", + "IsSyncAccountHelpText": "Sau khi thu thập hoàn tất, các tài khoản thu thập sẽ được đồng bộ hóa với tài sản", + "IsSyncAccountLabel": "Đồng bộ tới tài sản", + "JDCloud": "京东云", + "Job": "Công việc", + "JobCenter": "Trung tâm công việc", + "JobCreate": "Tạo công việc", + "JobDetail": "Chi tiết công việc", + "JobExecutionLog": "Nhật ký công việc", + "JobList": "danh sách công việc", + "JobManagement": "Quản lý nhiệm vụ", + "JobUpdate": "Cập nhật nhiệm vụ", + "JobsAudit": "Kiểm tra công việc", + "KingSoftCloud": "Jindo Cloud", + "KokoSetting": "Cấu hình KoKo", + "LAN": "Mạng cục bộ", + "LDAPUser": "Người dùng LDAP", + "LOWER_CASE_REQUIRED": "Phải chứa chữ cái thường", + "Language": "Ngôn ngữ", + "LarkOAuth": "Xác thực Lark", + "Last30": "30 lần gần nhất", + "Last30Days": "Trong 30 ngày qua, khi đăng nhập vào tài sản, có thể tiến hành kiểm tra dựa trên IP đăng nhập của người dùng và khoảng thời gian để xác định có thể đăng nhập vào tài sản hay không.", + "Last7Days": "7 ngày qua", + "LastPublishedTime": "Thời gian phát hành cuối cùng", + "Ldap": "LDAP", + "LdapBulkImport": "Nhập người dùng", + "LdapConnectTest": "Kiểm tra kết nối", + "LdapLoginTest": "Kiểm tra đăng nhập", + "LeakPasswordList": "Danh sách mật khẩu yếu", + "LeakedPassword": "Rò rỉ mật khẩu", + "Length": "Chiều dài", + "LessEqualThan": "Nhỏ hơn hoặc bằng", + "LevelApproval": "Cấp phê duyệt", + "License": "Giấy phép", + "LicenseExpired": "Giấy phép đã hết hạn", + "LicenseFile": "Tệp giấy phép", + "LicenseForTest": "Chứng chỉ sử dụng thử nghiệm, chứng chỉ này chỉ dùng cho thử nghiệm (PoC) và trình diễn", + "LicenseReachedAssetAmountLimit": "Số lượng tài sản đã vượt quá giới hạn số lượng giấy phép", + "LicenseWillBe": "Giấy phép sắp hết hạn", + "LinkedDomains": "Chiến lược tìm kiếm nút", + "ListPreference": "Sở thích danh sách", + "LoadTemplate": "Tải từ mẫu", + "Loading": "Đang tải", + "LockedIP": "IP đã bị khóa {count} cái", + "Log": "Nhật ký", + "LogData": "Dữ liệu nhật ký", + "LogOfLoginSuccessNum": "Số lượng nhật ký đăng nhập thành công", + "Logging": "Ghi chép nhật ký", + "LoginAssetConfirm": "Xem xét đăng nhập tài sản", + "LoginAssetToday": "Số lượng tài sản hoạt động hôm nay", + "LoginAssets": "Tài sản hoạt động", + "LoginBlocked": "Đăng nhập bị chặn", + "LoginConfirm": "Xác thực đăng nhập", + "LoginConfirmUser": "Người duyệt đăng nhập", + "LoginCount": "Số lần đăng nhập", + "LoginCtyDistribution": "Phân bố thành phố đăng nhập", + "LoginDate": "Ngày đăng nhập", + "LoginFailed": "Đăng nhập thất bại", + "LoginFrom": "Nguồn đăng nhập", + "LoginImageTip": "Nếu cùng lúc thiết lập interval và crontab, thì ưu tiên crontab", + "LoginLog": "Nhật ký đăng nhập", + "LoginLogTotal": "Số lượng nhật ký đăng nhập", + "LoginMethodStatistics": "Thống kê phương pháp đăng nhập", + "LoginNum": "Số lần đăng nhập", + "LoginPasswordSetting": "Mật khẩu đăng nhập", + "LoginRequiredMsg": "Tài khoản đã thoát, vui lòng đăng nhập lại", + "LoginSSHKeySetting": "Khóa SSH để đăng nhập", + "LoginSource": "Nguồn đăng nhập", + "LoginSucceeded": "Đăng nhập thành công", + "LoginTitleTip": "Ghi chú: Sẽ hiển thị trên trang đăng nhập KoKo SSH của người dùng phiên bản doanh nghiệp (ví dụ: Chào mừng bạn đến với JumpServer, công cụ bảo mật mã nguồn mở)", + "LoginUserRanking": "Xếp hạng tài khoản đăng nhập", + "LoginUserToday": "Số lượng người dùng đăng nhập hôm nay", + "LoginUsers": "Tài khoản hoạt động", + "LogoIndexTip": "Gợi ý: Sẽ hiển thị ở góc trên bên trái của trang quản lý (ảnh khuyên dùng cỡ: 185px*55px)", + "LogoLogoutTip": "Gợi ý: sẽ hiển thị trên trang Web của người dùng phiên bản doanh nghiệp (kích thước hình ảnh đề xuất: 82px*82px)", + "Logout": "Đăng xuất", + "LogsAudit": "Kiểm tra nhật ký", + "LongTimeNoVerify": "Chưa xác thực trong thời gian dài", + "LongTimePassword": "Chưa đổi mật khẩu trong thời gian dài", + "Lowercase": "Chữ cái thường", + "LunaSetting": "Cấu hình Luna", + "MFAAllUsers": "Toàn cầu kích hoạt: Tất cả người dùng", + "MFAErrorMsg": "Lỗi MFA, vui lòng kiểm tra", + "MFAOfUserFirstLoginPersonalInformationImprovementPage": "Kích hoạt xác thực nhiều yếu tố, để tài khoản an toàn hơn.
Sau khi kích hoạt, bạn sẽ được đưa vào quy trình liên kết xác thực nhiều yếu tố khi đăng nhập lần tới; Bạn cũng có thể liên kết trực tiếp tại (Thông tin cá nhân-> Sửa đổi nhanh-> Thay đổi cài đặt nhiều yếu tố)!", + "MFAOfUserFirstLoginUserGuidePage": "Để bảo vệ bạn và công ty khỏi các nguy cơ, hãy bảo quản cẩn thận tài khoản, mật khẩu và thông tin nhạy cảm quan trọng như khóa; (ví dụ: thiết lập mật khẩu phức tạp và kích hoạt xác thực đa yếu tố)
Thông tin cá nhân như email và số điện thoại chỉ được sử dụng cho việc xác thực người dùng và thông báo tin nhắn nội bộ trên nền tảng.", + "MFAOnlyAdminUsers": "Kích hoạt toàn cầu: chỉ quản trị viên", + "MIN_LENGTH_ERROR": "Chiều dài mật khẩu tối thiểu là {0} ký tự", + "MailRecipient": "Người nhận email", + "MailSend": "Gửi email", + "ManagePlatform": "quản lý nền tảng", + "ManualAccount": "Tài khoản thủ công", + "ManualAccountTip": "Nhập tay tên đăng nhập/mật khẩu khi đăng nhập", + "ManualExecution": "Thực hiện thủ công", + "ManyChoose": "Có thể chọn nhiều", + "MarkAsRead": "đánh dấu đã đọc", + "Marketplace": "Thị trường ứng dụng", + "Match": "Khớp.", + "MatchIn": "Trong...", + "MatchResult": "Kết quả khớp", + "MatchedCount": "Kết quả khớp", + "Members": "Thành viên", + "MenuACLs": "Kiểm soát truy cập", + "MenuAccountTemplates": "Mẫu tài khoản", + "MenuAccounts": "Tài khoản", + "MenuAssets": "Quản lý tài sản", + "MenuChangeSecret": "Tài khoản đổi mật khẩu", + "MenuMore": "Khác", + "MenuPermissions": "Quản lý cấp phép", + "MenuUsers": "Quản lý người dùng", + "Message": "Tin nhắn", + "MessageType": "Nâng cấp lên phiên bản doanh nghiệp để tận hưởng tính năng này", + "MfaLevel": "Xác thực nhiều yếu tố", + "Min": "Phút", + "MinNumber30": "Số phải lớn hơn hoặc bằng 30", + "Modify": "Sửa đổi", + "ModifyTheTargetUserTopTank": "Chỉnh sửa thứ hạng người dùng mục tiêu", + "Module": "Mô-đun", + "Monday": "Thứ hai", + "Monitor": "Giám sát", + "Month": "Tháng", + "More": "Thêm nữa", + "MoreActions": "Thêm hành động khác", + "MoveAssetToNode": "Di chuyển tài sản đến nút", + "MoveToAsset": "Di chuyển đến tài sản", + "MsgSubscribe": "Đăng ký tin nhắn", + "MyAssets": "Tài sản của tôi", + "MyTickets": "Những gì tôi đã khởi xướng", + "NUMBER_REQUIRED": "Phải chứa chữ số", + "Name": "Tên.", + "NavHelp": "Liên kết thanh điều hướng", + "Navigation": "Điều hướng", + "NeedReLogin": "Cần đăng nhập lại", + "NeedUpdatePassword": "Cần thay đổi mật khẩu", + "NeverLogin": "Không bao giờ đăng nhập", + "New": "Tạo mới", + "NewAccountsFound": "Phát hiện mới", + "NewChat": "Trò chuyện mới", + "NewCount": "Nhấp để chuyển đổi giữa các chế độ xem khác nhau", + "NewCron": "Tạo Cron", + "NewDirectory": "Tạo thư mục mới", + "NewFile": "Tạo tệp mới", + "NewPassword": "Mật khẩu mới", + "NewPublicKey": "Khóa SSH công mới", + "NewSSHKey": "Khóa công khai SSH", + "NewSecret": "Mật văn mới", + "NewSyncCount": "Đồng bộ mới", + "Next": "Bước tiếp theo", + "No": "Không", + "NoAccountFound": "Không tìm thấy tài khoản", + "NoAdminAccount": "Không có tài khoản quản trị", + "NoContent": "Chưa có nội dung", + "NoData": "Chưa có dữ liệu", + "NoFiles": "Chưa có tài liệu", + "NoLog": "Không có nhật ký", + "NoLoginLongTime": "Không đăng nhập trong thời gian dài", + "NoMFA": "Chưa kích hoạt MFA", + "NoPermission": "Chưa có quyền truy cập", + "NoPermission403": "403 Chưa có quyền truy cập", + "NoPermissionInGlobal": "Quyền toàn cầu không có", + "NoPermissionVew": "Không có quyền xem trang hiện tại", + "NoResource": "Không có tài nguyên hợp lệ", + "NoUnreadMsg": "Hiện chưa có tin nhắn chưa đọc", + "Node": "Nút", + "NodeInformation": "Thông tin nút", + "NodeOfNumber": "Số lượng nút", + "NodeSearchStrategy": "Thêm mới", + "NonRunnableAssets": "Tài sản không khả thi", + "None": "Không", + "NormalLoad": "Bình thường", + "NotEnableMfa": "Chưa khởi động MFA", + "NotEqual": "không bằng", + "NotSet": "Chưa được thiết lập", + "NotSpecialEmoji": "Không cho phép nhập ký tự biểu cảm đặc biệt", + "Nothing": "Không", + "NotificationConfiguration": "Cài đặt thông báo", + "Notifications": "Cài đặt thông báo", + "Now": "Bây giờ", + "Number": "Mã số", + "NumberOfVisits": "Số lần truy cập", + "OAuth2": "OAuth2", + "OAuth2LogoTip": "Gợi ý: Nhà cung cấp dịch vụ xác thực (khuyên kích thước hình ảnh nên là: 64px*64px)", + "OIDC": "OIDC", + "ObjectNotFoundOrDeletedMsg": "Không tìm thấy tài nguyên tương ứng hoặc đã bị xóa", + "ObjectStorage": "Lưu trữ đối tượng", + "Offline": "Ngoại tuyến", + "OfflineSelected": "Đưa ra ngoài các lựa chọn", + "OfflineSuccessMsg": "Ngắt kết nối thành công", + "OfflineUpload": "Tải lên ngoại tuyến", + "OldPassword": "Mật khẩu gốc", + "OldPublicKey": "Khóa công khai SSH cũ", + "OldSecret": "Nội dung gốc", + "OneAssignee": "Người tiếp nhận cấp một", + "OneAssigneeType": "Loại người tiếp nhận cấp một", + "OneClickReadMsg": "Bạn có chắc chắn muốn đánh dấu tất cả là đã đọc không?", + "OnlineSession": "Người dùng trực tuyến", + "OnlineSessionHelpMsg": "Không thể kết thúc phiên hiện tại vì đó là phiên trực tuyến của người dùng hiện tại. Hiện tại chỉ ghi lại người dùng đăng nhập qua Web.", + "OnlineSessions": "Số lượng phiên trực tuyến", + "OnlineUserDevices": "Thiết bị người dùng trực tuyến", + "OnlyInitialDeploy": "Chỉ khởi tạo cấu hình", + "OnlyMailSend": "Hiện tại chỉ hỗ trợ gửi qua email", + "OnlySearchCurrentNodePerm": "Chỉ tìm kiếm quyền hạn của nút hiện tại", + "Open": "Mở", + "OpenCommand": "Mở lệnh", + "OpenStack": "OpenStack", + "OpenStatus": "Đang phê duyệt", + "OpenTicket": "Tạo công việc", + "OperateLog": "Nhật ký hành động", + "OperatingSystemDistributionOfLoginAssets": "Phân phối hệ điều hành đăng nhập tài sản", + "OperationLogNum": "Nhật ký hoạt động", + "Operator": "Hành động người dùng", + "OperatorGeographicDistribution": "Phân bố người dùng theo khu vực", + "Options": "Tùy chọn", + "OracleDBNameHelpText": "Nhập SID hoặc tên dịch vụ của cơ sở dữ liệu Oracle", + "OrgAdmin": "Quản trị tổ chức", + "OrgAuditor": "Tổ chức kiểm toán viên", + "OrgName": "Tên tổ chức được ủy quyền", + "OrgRole": "Vai trò tổ chức", + "OrgRoleHelpMsg": "Vai trò tổ chức được thiết kế riêng cho các tổ chức khác nhau trong nền tảng. Những vai trò này được phân bổ khi mời người dùng gia nhập tổ chức cụ thể, và xác định quyền hạn và mức độ truy cập của họ trong tổ chức đó. Khác với vai trò hệ thống, vai trò tổ chức có thể tùy chỉnh và chỉ áp dụng trong phạm vi tổ chức mà chúng được gán.", + "OrgRoleHelpText": "Vai trò tổ chức là vai trò của người dùng trong tổ chức hiện tại", + "OrgRoles": "Vai trò tổ chức", + "OrgUser": "Người dùng trong tổ chức", + "Organization": "Tổ chức", + "OrganizationCreate": "Tạo tổ chức", + "OrganizationDetail": "Thông tin tổ chức", + "OrganizationList": "Quản lý tổ chức", + "OrganizationManage": "Quản lý tổ chức", + "OrganizationUpdate": "Cập nhật tổ chức", + "OrgsAndRoles": "Tổ chức và vai trò", + "Other": "Cài đặt khác", + "Output": "Xuất", + "Overview": "Tổng quan", + "PageNext": "Trang tiếp theo", + "PagePrev": "Trang trước", + "PamDashboard": "Bảng điều khiển tài khoản đặc quyền", + "Params": "Tham số", + "ParamsHelpText": "Miền là vị trí của tài sản, có thể là trung tâm dữ liệu, đám mây công cộng hoặc VPC. Trong miền có thể thiết lập cổng mạng, khi mạng không thể kết nối trực tiếp, bạn có thể sử dụng cổng để đăng nhập vào tài sản.", + "PassKey": "Passkey", + "Passkey": "Passkey", + "PasskeyAddDisableInfo": "Nguồn xác thực của bạn là {source}, không hỗ trợ thêm Passkey", + "PasskeySummary": "Xác thực sinh trắc học không cần mật khẩu", + "Passphrase": "Mật khẩu khóa", + "Password": "Mật khẩu", + "PasswordAndSSHKey": "Cài đặt xác thực", + "PasswordChangeLog": "Nhật ký thay đổi mật khẩu", + "PasswordError": "Mật khẩu không đúng", + "PasswordExpired": "Mật khẩu đã hết hạn", + "PasswordPlaceholder": "Vui lòng nhập mật khẩu", + "PasswordRecord": "Ghi chú mật khẩu", + "PasswordRule": "Quy tắc mật khẩu", + "PasswordSecurity": "Bảo mật mật khẩu", + "PasswordStrategy": "Chiến lược sinh mã hóa", + "PasswordWillExpiredPrefixMsg": "Mật khẩu sẽ hết hạn vào", + "PasswordWillExpiredSuffixMsg": "Sau bao nhiêu ngày sẽ hết hạn, vui lòng nhanh chóng thay đổi mật khẩu của bạn.", + "Paste": "Dán", + "Pause": "Tạm dừng", + "PauseTaskSendSuccessMsg": "Nhiệm vụ tạm dừng đã được phát lệnh, vui lòng làm mới lại để xem sau", + "Pending": "Chờ xử lý", + "Periodic": "Định kỳ", + "PermAccount": "Tài khoản cấp phép", + "PermAction": "Hành động được ủy quyền", + "PermUserList": "Người dùng được ủy quyền", + "PermissionCompany": "Công ty đã cấp phép", + "PermissionName": "Tên quy tắc ủy quyền", + "Permissions": "Quyền", + "PersonalInformationImprovement": "Thông tin cá nhân hoàn thiện", + "PersonalSettings": "cài đặt cá nhân", + "Phone": "Điện thoại di động", + "Plan": "Kế hoạch", + "Platform": "Nền tảng", + "PlatformCreate": "Tạo nền tảng", + "PlatformDetail": "Chi tiết nền tảng", + "PlatformList": "Danh sách nền tảng", + "PlatformPageHelpMsg": "Nền tảng là phân loại tài sản, ví dụ: Windows, Linux, thiết bị mạng, v.v. Bạn cũng có thể chỉ định một số cấu hình trên nền tảng, như giao thức, cổng, v.v., để quyết định liệu có kích hoạt một số chức năng trên tài sản hay không.", + "PlatformProtocolConfig": "Cấu hình giao thức nền tảng", + "PlatformUpdate": "Cập nhật nền tảng", + "PlaybookDetail": "Chi tiết Playbook", + "PlaybookManage": "Quản lý Playbook", + "PlaybookUpdate": "Cập nhật Playbook", + "PleaseAgreeToTheTerms": "Vui lòng đồng ý với các điều khoản", + "PleaseEnterReason": "Vui lòng nhập lý do", + "PleaseSelect": "Vui lòng chọn", + "PleaseSelectTheDataYouWantToCheck": "Vui lòng chọn dữ liệu cần đánh dấu", + "PolicyName": "Tên chính sách", + "Port": "Cổng", + "Ports": "Cổng", + "Preferences": "Cài đặt ưu tiên", + "PrepareSyncTask": "Chuẩn bị thực hiện nhiệm vụ đồng bộ hóa...", + "Primary": "Chính", + "Print": "In ấn", + "Priority": "Ưu tiên", + "PrivateCloud": "Điện toán đám mây riêng", + "PrivateIP": "IP riêng", + "PrivateKey": "Khóa bí mật", + "Privileged": "Tài khoản đặc quyền", + "PrivilegedFirst": "Tài khoản ưu tiên đặc quyền", + "PrivilegedOnly": "Chỉ tài khoản đặc quyền", + "PrivilegedTemplate": "Đặc quyền", + "Processing": "Đang xử lý", + "Product": "Sản phẩm", + "ProfileSetting": "Cài đặt thông tin cá nhân", + "Project": "Tên dự án", + "Prompt": "Gợi ý", + "Proportion": "Tỉ lệ", + "ProportionOfAccountTypes": "tỷ lệ loại tài khoản", + "ProportionOfAssetTypes": "Tỷ lệ loại tài sản", + "Protocol": "Thỏa thuận", + "Protocols": "Thỏa thuận", + "Provider": "Nhà cung cấp", + "Proxy": "Đại lý", + "PublicCloud": "Đám mây công cộng", + "PublicIP": "IP công cộng", + "PublicKey": "Khóa công khai", + "Publish": "Công bố", + "PublishAllApplets": "Phát hành tất cả ứng dụng", + "PublishStatus": "Trạng thái phát hành", + "Push": "Đưa vào", + "PushAccount": "Tài khoản đẩy", + "PushAccountHelpText": "Nếu tài khoản đã tồn tại, hãy sử dụng mã hóa tài khoản để tiến hành gửi; nếu tài khoản không tồn tại, hãy tạo tài khoản dựa trên mã hóa đã nhập và sau đó tiến hành gửi.", + "PushAccountsHelpText": "Đẩy tài khoản đã có lên tài sản. Khi đẩy tài khoản, nếu tài khoản đã tồn tại, sẽ cập nhật mật khẩu của tài khoản, nếu tài khoản không tồn tại, sẽ tạo tài khoản mới", + "PushParams": "Tham số đẩy", + "Qcloud": "Tencent Cloud", + "QcloudLighthouse": "Tencent Cloud (Máy chủ ứng dụng nhẹ)", + "QingYunPrivateCloud": "Đám mây riêng Qingyun", + "Queue": "Hàng đợi", + "Queued": "Đang chờ xử lý", + "QuickAdd": "Thêm nhanh", + "QuickFilter": "Lọc nhanh", + "QuickJob": "Lệnh nhanh", + "QuickUpdate": "Cập nhật nhanh", + "Radius": "Radius", + "RankByNumberOfAssetAccounts": "Xếp hạng số lượng tài khoản tài sản", + "Ranking": "Xếp hạng", + "RazorNotSupport": "Phiên RDP khách hàng, chưa hỗ trợ giám sát", + "ReLogin": "Đăng nhập lại", + "ReLoginTitle": "Người dùng đăng nhập từ bên thứ ba hiện tại (CAS/SAML) chưa liên kết MFA và không hỗ trợ xác thực bằng mật khẩu, vui lòng đăng nhập lại.", + "Ready": "Sẵn sàng", + "RealTimeData": "Dữ liệu thời gian thực", + "Reason": "Lý do", + "Receivers": "Người nhận", + "Recent (7 days)": "7 ngày gần đây", + "RecentLogin": "Đăng nhập gần đây", + "RecentPasswordChangeFailed": "Gần đây thay đổi mật khẩu không thành công", + "RecentSession": "Phiên gần đây", + "RecentlyChangedPassword": "Gần đây thay đổi mật khẩu", + "RecentlyDiscovered": "Phát hiện gần đây", + "RecentlyLoggedIn": "Đăng nhập gần đây", + "RecentlyModified": "Sửa đổi gần đây", + "RecentlyUsed": "Gần đây sử dụng", + "Recipient": "Người nhận", + "RecipientHelpText": "Nếu đồng thời thiết lập người nhận A và B, bí danh của tài khoản sẽ được tách thành hai phần; nếu chỉ thiết lập một người nhận, khóa sẽ không bị tách.", + "RecipientServer": "Nhận server", + "Reconnect": "Kết nối lại", + "Record": "Ghi chép", + "Refresh": "Làm mới", + "RefreshHardware": "Cập nhật thông tin phần cứng", + "Regex": "Biểu thức chính quy", + "Region": "Khu vực", + "RegularlyPerform": "Thực hiện định kỳ", + "Reject": "Lớn hơn hoặc bằng", + "Rejected": "Đã từ chối", + "ReleaseAssets": "Đồng bộ giải phóng tài sản", + "ReleaseAssetsHelpTips": "Có phải tự động xóa các tài sản đã đồng bộ qua nhiệm vụ và đã được phát hành trên đám mây khi nhiệm vụ kết thúc không?", + "ReleasedCount": "Đã giải phóng", + "RelevantApp": "Ứng dụng", + "RelevantAsset": "Tài sản", + "RelevantAssignees": "Người liên quan", + "RelevantCommand": "Lệnh", + "RelevantSystemUser": "Người dùng hệ thống", + "RemoteAddr": "Địa chỉ từ xa", + "RemoteAssetFoundAccountDeleteMsg": "Xóa tài khoản được phát hiện từ tài sản từ xa", + "RemoteLoginProtocolUsageDistribution": "Giao thức đăng nhập từ xa sử dụng phân bổ", + "Remove": "Gỡ bỏ", + "RemoveAssetFromNode": "Gỡ bỏ tài sản từ nút", + "RemoveSelected": "Xóa đã chọn", + "RemoveSuccessMsg": "Xóa thành công", + "RemoveWarningMsg": "Bạn có chắc chắn muốn xóa", + "Rename": "Đổi tên", + "RenameNode": "Đổi tên nút", + "Reopen": "Mở lại", + "RepeatedPassword": "Mật khẩu trùng lặp", + "ReplaceNodeAssetsAdminUserWithThis": "Thay thế quản trị viên của tài sản", + "Replay": "Phát lại", + "ReplaySession": "Phát lại cuộc hội thoại", + "ReplayStorage": "Lưu trữ đối tượng", + "ReplayStorageCreateUpdateHelpMessage": "Lưu ý: Hiện tại lưu trữ SFTP chỉ hỗ trợ sao lưu tài khoản, chưa hỗ trợ lưu trữ video.", + "ReplayStorageUpdate": "Cập nhật lưu trữ đối tượng", + "Reply": "Phản hồi", + "Report": "Báo cáo", + "ReportType": "Loại báo cáo", + "RequestAssetPerm": "Yêu cầu cấp quyền tài sản", + "RequestPerm": "Đơn xin cấp quyền", + "RequestTickets": "Yêu cầu công việc", + "RequiredAssetOrNode": "Vui lòng chọn ít nhất một tài sản hoặc nút", + "RequiredContent": "Nhập lệnh", + "RequiredEntryFile": "Tệp này phải tồn tại như một tệp khởi động cho quá trình thực hiện", + "RequiredRunas": "Vui lòng nhập người dùng đang chạy", + "RequiredSystemUserErrMsg": "Vui lòng chọn tài khoản", + "RequiredUploadFile": "Vui lòng tải lên file!", + "Reset": "Khôi phục", + "ResetAndDownloadSSHKey": "Đặt lại và tải khóa xuống.", + "ResetMFA": "Đặt lại MFA", + "ResetMFAWarningMsg": "Bạn có chắc chắn muốn thiết lập lại MFA của người dùng không?", + "ResetMFAdSuccessMsg": "Đặt lại MFA thành công, người dùng có thể thiết lập lại MFA", + "ResetPassword": "Đặt lại mật khẩu", + "ResetPasswordNextLogin": "Lần đăng nhập tiếp theo phải thay đổi mật khẩu", + "ResetPasswordSuccessMsg": "Đã gửi tin nhắn đặt lại mật khẩu đến người dùng", + "ResetPasswordWarningMsg": "Bạn chắc chắn muốn gửi email cài đặt lại mật khẩu người dùng không?", + "ResetPublicKeyAndDownload": "Đặt lại và tải xuống khóa SSH", + "ResetSSHKey": "Đặt lại khóa SSH", + "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?", + "ResetSecret": "Có thể chỉnh sửa mật khẩu", + "ResolveSelected": "Giải quyết đã chọn", + "Resource": "Tài nguyên", + "ResourceType": "Loại tài nguyên", + "RestoreButton": "Khôi phục mặc định", + "RestoreDefault": "Khôi phục mặc định", + "RestoreDialogMessage": "Bạn có chắc chắn muốn khôi phục cài đặt mặc định không?", + "RestoreDialogTitle": "Bạn có xác nhận không?", + "Result": "Kết quả", + "Resume": "Khôi phục", + "ResumeTaskSendSuccessMsg": "Nhiệm vụ khôi phục đã được phát đi, vui lòng làm mới để xem thêm", + "Retry": "Thử lại", + "RetrySelected": "Thử lại đã chọn", + "Review": "Xem xét", + "Reviewer": "Người phê duyệt", + "RiskDetection": "Phát hiện rủi ro", + "RiskDetectionDetail": "Chi tiết phát hiện rủi ro", + "RiskyAccount": "Tài khoản rủi ro", + "Role": "Vai trò", + "RoleCreate": "Tạo nhân vật", + "RoleDetail": "Chi tiết vai trò", + "RoleInfo": "Thông tin nhân vật", + "RoleList": "Danh sách vai trò", + "RoleManage": "vai trò", + "RoleUpdate": "Cập nhật vai trò", + "RoleUsers": "Người dùng được cấp phép", + "Rows": "Hành động", + "Rule": "Điều kiện", + "RuleCount": "Số lượng điều kiện", + "RuleDetail": "Chi tiết quy tắc", + "RuleRelation": "Điều kiện quan hệ", + "RuleRelationHelpTip": "và: Chỉ thực hiện hành động này khi tất cả các điều kiện đều được thỏa mãn; hoặc: Chỉ cần thỏa mãn một điều kiện sẽ thực hiện hành động này", + "RuleSetting": "Cài đặt điều kiện", + "Rules": "Quy tắc", + "Run": "Thực hiện", + "RunAgain": "Thực hiện lại", + "RunAs": "Người dùng hoạt động.", + "RunCommand": "Thực hiện Action", + "RunJob": "Thực hiện tác vụ", + "RunSucceed": "Thực hiện nhiệm vụ thành công", + "RunTaskManually": "Thực hiện thủ công", + "RunasHelpText": "Nhập tên người dùng của kịch bản chạy", + "RunasPolicy": "Chiến lược tài khoản", + "RunasPolicyHelpText": "Khi không có người dùng đang hoạt động trên tài sản hiện tại, cần áp dụng chiến lược lựa chọn tài khoản nào. Bỏ qua: không thực hiện. Tài khoản ưu tiên đặc quyền: nếu có tài khoản đặc quyền thì lựa chọn tài khoản đặc quyền trước, nếu không có thì chọn tài khoản thông thường. Chỉ tài khoản đặc quyền: chỉ lựa chọn từ các tài khoản đặc quyền, nếu không có thì không thực hiện. \n\nDanh sách tài khoản hiển thị các tài khoản được tạo thông qua mẫu. Khi cập nhật mật mã, sẽ cập nhật mật mã của các tài khoản được tạo từ mẫu. \n\nNgười dùng được ủy quyền. \n\nXem xét. \n\nĐẩy. \n\nXử lý hàng loạt (chọn {number} mục). \n\nSao chép không thành công. \n\nKiểm toán viên tổ chức. \n\nCài đặt hệ thống. \n\nBáo cáo tự động hóa tài khoản. \n\nKhông thể truy cập trang hiện tại. \n\nLọc nhanh. \n\nLoại người tiếp nhận cấp một. \n\nBạn có xác nhận không? \n\nThiết bị người dùng trực tuyến.", + "RunnableAssets": "Tài sản có thể hoạt động", + "Running": "Đang chạy", + "RunningPath": "Đường dẫn hoạt động", + "RunningPathHelpText": "Điền đường dẫn thực thi của script, cài đặt này chỉ có hiệu lực với shell script", + "RunningSummary": "Đang chạy", + "RunningTimes": "Thời gian chạy gần đây nhất 5 lần", + "SCP": "Nền tảng đám mây Xin Xin Fu", + "SMS": "Tin nhắn", + "SMSProvider": "Cấp quyền tài sản", + "SMTP": "Máy chủ email", + "SPECIAL_CHAR_REQUIRED": "Phải bao gồm ký tự đặc biệt", + "SSHKey": "Khóa SSH", + "SSHKeyOfProfileSSHUpdatePage": "Bạn có thể nhấp vào nút dưới đây để đặt lại và tải xuống khóa, hoặc sao chép khóa công khai SSH của bạn và gửi đi.", + "SSHPort": "Cổng SSH", + "SSHSecretKey": "Khóa SSH", + "SSO": "đăng nhập một lần", + "SafeCommand": "Lệnh an toàn", + "SameAccount": "Tài khoản trùng tên", + "SameAccountTip": "Tài khoản giống với tên người dùng được ủy quyền", + "SameTypeAccountTip": "Tài khoản với tên người dùng và loại khóa giống nhau đã tồn tại", + "Saturday": "Thứ bảy", + "Save": "Lưu lại", + "SaveAdhoc": "Lưu lệnh", + "SaveAndAddAnother": "Lưu và tiếp tục thêm", + "SaveCommand": "Lưu lệnh", + "SaveCommandSuccess": "Lưu lệnh thành công", + "SaveSetting": "Cài đặt đồng bộ", + "SaveSuccess": "Lưu thành công", + "SaveSuccessContinueMsg": "Tạo thành công, sau khi cập nhật nội dung có thể tiếp tục thêm", + "ScrollToBottom": "Cuộn xuống cuối trang", + "ScrollToTop": "Cuộn lên đầu trang", + "Search": "Tìm kiếm", + "SearchAncestorNodePerm": "Tìm kiếm đồng thời quyền hạn của nút hiện tại và các nút tổ tiên", + "Secret": "Mật khẩu", + "SecretKey": "Khóa", + "SecretKeyStrategy": "Chiến lược mật khẩu", + "SecretReset": "Có thể đổi mật khẩu", + "SecretType": "Loại mật khẩu", + "Secure": "An toàn", + "Security": "Cài đặt bảo mật", + "Select": "Chọn", + "SelectAdhoc": "Chọn hành động", + "SelectAll": "Chọn tất cả", + "SelectAtLeastOneAssetOrNodeErrMsg": "Vui lòng chọn ít nhất một tài sản hoặc nút", + "SelectAttrs": "Chọn thuộc tính", + "SelectByAttr": "Lọc thuộc tính", + "SelectFile": "Chọn tệp", + "SelectKeyOrCreateNew": "Chọn khóa nhãn hoặc tạo mới", + "SelectLabelFilter": "Chọn thẻ lọc", + "SelectPlatform": "Chọn nền tảng.", + "SelectProperties": "Chọn thuộc tính", + "SelectProtocol": "Giao thức có thể lựa chọn", + "SelectProvider": "Chọn nền tảng", + "SelectProviderMsg": "Vui lòng chọn một nền tảng đám mây", + "SelectResource": "Chọn tài nguyên", + "SelectRisk": "Chọn rủi ro", + "SelectTemplate": "Chọn mẫu", + "SelectValueOrCreateNew": "Chọn giá trị nhãn hoặc tạo mới", + "SelectVirtualAccount": "Chọn tài khoản ảo", + "Selected": "Đã chọn", + "Selection": "Có thể chọn", + "Selector": "Bộ chọn", + "Send": "Gửi", + "SendVerificationCode": "Gửi mã xác thực", + "SerialNumber": "Số sê-ri", + "Server": "Dịch vụ", + "ServerAccountKey": "Khóa tài khoản dịch vụ", + "ServerBusyRetry": "Máy chủ đang bận, xin vui lòng thử lại sau.", + "ServerError": "Lỗi máy chủ", + "ServerTime": "Thời gian máy chủ", + "Session": "Cuộc hội thoại", + "SessionCommands": "Lệnh phiên", + "SessionConnectTrend": "Xu hướng kết nối phiên", + "SessionData": "dữ liệu phiên làm việc", + "SessionDetail": "Chi tiết phiên", + "SessionID": "ID phiên.", + "SessionJoinRecords": "Hồ sơ hợp tác", + "SessionList": "Ghi chép phiên làm việc", + "SessionMonitor": "Giám sát", + "SessionOffline": "Lịch sử cuộc hội thoại", + "SessionOnline": "Cuộc trò chuyện trực tuyến", + "SessionSecurity": "An toàn phiên làm việc", + "SessionState": "Trạng thái phiên làm việc", + "SessionTerminate": "Phiên làm việc bị ngắt", + "SessionTrend": "Xu hướng phiên", + "Sessions": "Quản lý phiên", + "SessionsAudit": "Kiểm toán phiên", + "SessionsNum": "Số phiên", + "Set": "Đã thiết lập", + "SetDingTalk": "Cài đặt xác thực DingTalk", + "SetFailed": "Cài đặt thất bại", + "SetFeiShu": "Cài đặt xác thực Feishu", + "SetMFA": "Miền liên kết đã được thiết lập", + "SetSuccess": "Thiết lập thành công", + "SetToDefault": "Đặt làm mặc định", + "Setting": "Cài đặt", + "SettingInEndpointHelpText": "Cấu hình địa chỉ dịch vụ và cổng trong cài đặt hệ thống / cài đặt thành phần / điểm cuối dịch vụ", + "Settings": "Cài đặt hệ thống", + "Share": "Chia sẻ", + "Show": "Hiển thị", + "ShowAssetAllChildrenNode": "Hiển thị tất cả tài sản con", + "ShowAssetOnlyCurrentNode": "Chỉ hiển thị tài sản của nút hiện tại", + "ShowNodeInfo": "Hiển thị chi tiết nút", + "SignChannelNum": "Số kênh ký tên", + "SiteMessage": "Thư nội bộ", + "SiteMessageList": "Thư nội bộ", + "SiteURLTip": "Ví dụ: https://demo.example.com", + "Skip": "Bỏ qua tài sản hiện tại", + "Skipped": "Đã bỏ qua", + "Slack": "Slack", + "SlackOAuth": "Xác thực Slack", + "Source": "Nguồn", + "SourceIP": "Địa chỉ nguồn", + "SourcePort": "Cổng nguồn", + "Spec": "Chỉ định", + "SpecAccount": "Tài khoản chỉ định", + "SpecAccountTip": "Chọn tài khoản được cấp quyền theo tên người dùng", + "SpecialSymbol": "Ký tự đặc biệt", + "SpecificInfo": "Thông tin đặc biệt", + "SshKeyFingerprint": "Dấu vân tay SSH", + "Startswith": "Bắt đầu bằng...", + "State": "Trạng thái", + "StateClosed": "Đã tắt", + "Status": "Trạng thái", + "StatusGreen": "Trạng thái gần đây tốt", + "StatusRed": "Lần thực hiện tác vụ trước đó đã thất bại", + "StatusYellow": "Gần đây đã xảy ra lỗi khi thực hiện", + "Step": "Bước", + "Stop": "Dừng", + "StopJob": "Dừng công việc", + "StopJobMsg": "Dừng thành công", + "StopLogOutput": "Nhiệm vụ đã hủy: Nhiệm vụ hiện tại (currentTaskId) đã dừng bằng tay, do tiến trình thực hiện của mỗi nhiệm vụ khác nhau, dưới đây là kết quả thực hiện cuối cùng của nhiệm vụ, thất bại có nghĩa là nhiệm vụ đã dừng thành công.", + "Storage": "Lưu trữ", + "StorageSetting": "Cài đặt lưu trữ", + "Strategy": "Chiến lược", + "StrategyCreate": "Tạo chiến lược", + "StrategyDetail": "Chi tiết chính sách", + "StrategyHelpTip": "Nhận diện thuộc tính độc nhất của tài sản (chẳng hạn như nền tảng) dựa trên ưu tiên chính sách; khi thuộc tính của tài sản (chẳng hạn như nút) có thể được cấu hình với nhiều giá trị, tất cả các hành động của chính sách sẽ được thực hiện.", + "StrategyList": "Danh sách chiến lược", + "StrategyUpdate": "Cập nhật chính sách", + "SuEnabled": "Bật chuyển đổi tài khoản", + "SuFrom": "Chuyển đổi tự", + "Submit": "Gửi", + "SubscriptionID": "ID cấp phép đăng ký", + "Success": "Thành công", + "Success/Total": "Thành công/Tổng số", + "SuccessAsset": "Tài sản thành công", + "SuccessfulOperation": "Hành động thành công", + "SudoersChanged": "Thay đổi Sudo", + "Summary": "Tổng hợp", + "Summary(success/total)": "Tổng quan ( Thành công/Tổng số )", + "Sunday": "Chủ nhật", + "SuperAdmin": "Quản trị viên siêu cấp", + "SuperOrgAdmin": "Quản trị viên siêu cấp + Quản trị viên tổ chức", + "Support": "Hỗ trợ", + "SupportedProtocol": "Giao thức hỗ trợ", + "SupportedProtocolHelpText": "Cài đặt giao thức hỗ trợ tài sản, nhấp vào nút cài đặt để có thể chỉnh sửa cấu hình tùy chỉnh cho giao thức, như thư mục SFTP, miền RDP AD, v.v.", + "SupportedTypes": "Các loại hỗ trợ", + "Sync": "Đồng bộ", + "SyncAction": "Hành động đồng bộ", + "SyncDelete": "Đồng bộ xóa", + "SyncDeleteSelected": "Đồng bộ xóa lựa chọn", + "SyncErrorMsg": "Đồng bộ hóa không thành công:", + "SyncInstanceTaskCreate": "Tạo tác vụ đồng bộ", + "SyncInstanceTaskDetail": "Chi tiết nhiệm vụ đồng bộ", + "SyncInstanceTaskHistoryAssetList": "Danh sách các phiên bản đồng bộ", + "SyncInstanceTaskHistoryList": "Đồng bộ danh sách lịch sử", + "SyncInstanceTaskList": "Danh sách nhiệm vụ đồng bộ", + "SyncInstanceTaskUpdate": "Cập nhật nhiệm vụ đồng bộ", + "SyncManual": "Đồng bộ thủ công", + "SyncOnline": "Đồng bộ trực tuyến", + "SyncProtocolToAsset": "Đồng bộ giao thức tới tài sản", + "SyncRegion": "Đang đồng bộ khu vực", + "SyncSelected": "Đồng bộ đã chọn", + "SyncSetting": "Cài đặt đồng bộ", + "SyncStrategy": "Chiến lược đồng bộ hóa", + "SyncSuccessMsg": "Đồng bộ thành công", + "SyncTask": "Nhiệm vụ đồng bộ", + "SyncTiming": "Đồng bộ theo lịch", + "SyncUpdateAccountInfo": "Cập nhật thông tin tài khoản đồng bộ", + "SyncUser": "Đồng bộ người dùng", + "SyncedCount": "Đã đồng bộ hóa", + "SystemError": "Lỗi hệ thống", + "SystemRole": "Vai trò hệ thống", + "SystemRoleHelpMsg": "Vai trò hệ thống là vai trò phổ quát áp dụng cho tất cả tổ chức trong nền tảng. Những vai trò này cho phép bạn định nghĩa quyền riêng biệt và cấp độ truy cập cho người dùng trong toàn hệ thống. Sự thay đổi về vai trò hệ thống sẽ ảnh hưởng đến tất cả các tổ chức sử dụng nền tảng này.", + "SystemRoles": "Vai trò hệ thống", + "SystemSetting": "Cài đặt hệ thống", + "SystemTasks": "Hệ thống nhiệm vụ", + "SystemTools": "Công cụ hệ thống", + "TTL": "Thời gian còn lại (giây)", + "TableColSetting": "Chọn cột thuộc tính có thể nhìn thấy", + "TableSetting": "Tuỳ chọn biểu mẫu", + "TagCreate": "Tạo thẻ", + "TagInputFormatValidation": "Định dạng nhãn sai, định dạng đúng là: name:value", + "TagList": "Danh sách thẻ", + "TagUpdate": "Cập nhật nhãn", + "Tags": "Nhãn", + "TailLog": "Nhật ký theo dõi", + "Target": "Mục tiêu", + "TargetResources": "Tài nguyên mục tiêu", + "TargetUser": "Người dùng mục tiêu", + "Task": "Action", + "TaskDetail": "Chi tiết nhiệm vụ", + "TaskDone": "Kết thúc nhiệm vụ", + "TaskExecutionTrends": "Xu hướng thực hiện tác vụ", + "TaskID": "ID nhiệm vụ", + "TaskList": "Danh sách nhiệm vụ", + "TaskMonitor": "Giám sát nhiệm vụ", + "TaskPath": "- Đường dẫn nhiệm vụ\n- Đăng nhập thành công\n- Danh sách tài khoản thêm tên người dùng của tài khoản\n- Dừng thành công\n- Cài đặt thông báo\n- Cổng đích\n- Azure (quốc tế)\n- Xếp hạng tài khoản đăng nhập\n- Khác\n- Lưu trữ lệnh\n- Nhật ký đăng nhập\n- Nhóm người dùng\n- Tạo lưu trữ đối tượng\n- Danh sách tài sản\n- Container", + "TaskSummary": "Tóm tắt nhiệm vụ", + "Tasks": "Nhiệm vụ", + "TechnologyConsult": "Tư vấn kỹ thuật", + "TempPasswordTip": "Mật khẩu tạm thời có hiệu lực trong 300 giây, ngay sau khi sử dụng sẽ hết hiệu lực", + "TempToken": "Mật khẩu tạm thời", + "TemplateAdd": "Thêm 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", + "TemplateManagement": "Quản lý mẫu", + "Templates": "Mẫu", + "TencentCloud": "Tencent Cloud", + "Terminal": "Cài đặt thành phần", + "TerminalDetail": "chi tiết thành phần", + "TerminalUpdate": "Cập nhật đầu cuối", + "TerminalUpdateStorage": "Cập nhật kho lưu trữ thiết bị", + "Terminate": "Ngắt kết nối", + "TerminateTaskSendSuccessMsg": "Nhiệm vụ đã bị dừng đã được phát, vui lòng làm mới để xem sau.", + "TermsAndConditions": "Điều khoản và điều kiện", + "Test": "Kiểm tra", + "TestAccountConnective": "Kiểm tra khả năng kết nối tài khoản thử nghiệm", + "TestAssetsConnective": "Kiểm tra khả năng kết nối tài sản", + "TestConnection": "Kiểm tra kết nối", + "TestGatewayHelpMessage": "Nếu sử dụng NAT port mapping, hãy đặt về cổng thật sự lắng nghe của ssh", + "TestGatewayTestConnection": "Kiểm tra kết nối cổng", + "TestLdapLoginTitle": "Kiểm tra đăng nhập người dùng LDAP", + "TestNodeAssetConnectivity": "Kiểm tra khả năng kết nối tài sản", + "TestPortErrorMsg": "Lỗi cổng, vui lòng nhập lại", + "TestSelected": "Kiểm tra đã chọn", + "TestSuccessMsg": "Kiểm tra thành công", + "ThirdPartyMfaHelpText": "Các phương thức đăng nhập bên thứ ba bao gồm: OpenID, CAS, SAML2, OAuth2, WeChat doanh nghiệp, Feishu, Lark, Slack, DingTalk", + "Thursday": "Thứ Năm", + "Ticket": "Công việc", + "TicketDetail": "Chi tiết công việc", + "TicketFlow": "Quy trình công việc", + "TicketFlowCreate": "Tạo dòng phê duyệt", + "TicketFlowUpdate": "Cập nhật quy trình phê duyệt", + "TicketList": "Danh sách công việc", + "Tickets": "Danh sách công việc", + "TicketsAudit": "Kiểm tra công việc", + "Time": "Thời gian", + "TimeDelta": "Thời gian chạy", + "TimeExpression": "Biểu thức thời gian", + "Timeout": "Thời gian chờ", + "Timeout(s)": "Thời gian chờ (giây)", + "TimeoutHelpText": "Khi giá trị này là -1, không chỉ định thời gian hết hạn", + "Timer": "Thực hiện theo lịch trình", + "TimerExecution": "Thực hiện theo lịch", + "Title": "Tiêu đề", + "To": "Đến", + "Today": "Hôm nay", + "TodayFailedConnections": "Số lần kết nối thất bại hôm nay", + "Token": "Mã thông báo", + "TopRankOfOperateUsers": "Xử lý xếp hạng người dùng", + "Total": "Tổng cộng", + "TotalAccounts": "Tổng số tài khoản", + "TotalJobFailed": "Số lượng tác vụ thực thi thất bại", + "TotalJobLog": "Tổng số tác vụ thực hiện", + "TotalJobRunning": "Số lượng công việc đang chạy", + "TotalSyncAsset": "Số tài sản đồng bộ (cái)", + "TotalSyncRegion": "Số khu vực đồng bộ (cái)", + "TotalSyncStrategy": "Số lượng chính sách liên kết (cái)", + "Transfer": "Truyền tải", + "TriggerMode": "Phương thức kích hoạt", + "Tuesday": "Thứ Ba", + "TwoAssignee": "Người nhận cấp hai", + "TwoAssigneeType": "Loại người tiếp nhận thứ cấp", + "Type": "Loại", + "TypeTree": "Cây loại", + "Types": "Loại", + "UCloud": "UCloud", + "UPPER_CASE_REQUIRED": "Phải chứa chữ cái viết hoa", + "UnFavoriteSucceed": "Hủy bỏ yêu thích thành công", + "UnSyncCount": "Chưa đồng bộ", + "UnavailableAccount": "Tài khoản không khả dụng", + "Unbind": "Hủy liên kết", + "UnbindHelpText": "Người dùng cục bộ là nguồn xác thực, không thể ngắt kết nối", + "Unblock": "Mở khóa", + "UnblockSelected": "Mở khóa đã chọn", + "UnblockSuccessMsg": "Mở khóa thành công", + "UnblockUser": "Mở khóa người dùng", + "Uninstall": "Gỡ cài đặt", + "UniqueError": "Các thuộc tính dưới đây chỉ có thể thiết lập một", + "UnlockSuccessMsg": "Mở khóa thành công", + "UnmanagedAccount": "Tài khoản không được quản lý", + "UnselectedOrg": "Chưa chọn tổ chức", + "UnselectedUser": "Chưa chọn người dùng", + "UpDownload": "Tải lên tải xuống", + "Update": "Cập nhật", + "UpdateAccount": "Cập nhật tài khoản", + "UpdateAccountTemplate": "Cập nhật mẫu tài khoản", + "UpdateAssetDetail": "Cấu hình thêm thông tin", + "UpdateAssetUserToken": "Cập nhật thông tin xác thực tài khoản", + "UpdateEndpoint": "Cập nhật điểm cuối", + "UpdateEndpointRule": "Cập nhật quy tắc điểm cuối", + "UpdateErrorMsg": "Cập nhật thất bại", + "UpdateNodeAssetHardwareInfo": "Cập nhật thông tin phần cứng tài sản nút", + "UpdatePlatformHelpText": "Chỉ khi loại nền tảng gốc của tài sản và loại nền tảng đã chọn giống nhau thì mới tiến hành cập nhật, nếu loại nền tảng trước và sau khi cập nhật khác nhau thì sẽ không thực hiện cập nhật.", + "UpdateSSHKey": "Cập nhật khóa công khai SSH", + "UpdateSelected": "Chỉnh sửa đã chọn", + "UpdateSuccessMsg": "Cập nhật thành công", + "Updated": "Đã cập nhật", + "UpgradeEnterpriseEdition": "Nâng cấp lên phiên bản doanh nghiệp", + "UpgradeEnterpriseEditionHelpText": "Phiên", + "Upload": "Tải lên", + "UploadCsvLth10MHelpText": "Chỉ có thể tải lên csv/xlsx và không vượt quá 10M", + "UploadDir": "Thư mục tải lên", + "UploadFileLthHelpText": "Chỉ có thể tải lên các tệp nhỏ hơn {limit}MB", + "UploadHelpText": "Vui lòng tải lên tệp .zip chứa cấu trúc thư mục mẫu dưới đây", + "UploadPlaybook": "Tải lên Playbook", + "UploadSucceed": "Tải lên thành công", + "UploadZipTips": "Vui lòng tải lên tệp định dạng zip", + "Uploading": "Đang tải tập tin lên", + "Uppercase": "Chữ in hoa", + "UseProtocol": "Thỏa thuận sử dụng", + "UseSSL": "Sử dụng SSL/TLS", + "User": "Người dùng", + "UserACLss": "Quy tắc đăng nhập người dùng", + "UserAssetActivity": "Tình trạng hoạt động tài khoản/tài sản", + "UserChangePasswordReport": "Báo cáo thay đổi mật khẩu người dùng", + "UserCreate": "Tạo người dùng", + "UserData": "Dữ liệu người dùng", + "UserDetail": "Chi tiết người dùng", + "UserGroup": "Nhóm người dùng", + "UserGroupCreate": "Tạo nhóm người dùng", + "UserGroupDetail": "Chi tiết nhóm người dùng", + "UserGroupList": "Nhóm người dùng", + "UserGroupUpdate": "Tích hợp ứng dụng", + "UserGroups": "Nhóm người dùng", + "UserList": "Danh sách người dùng", + "UserLogin": "Người dùng đăng nhập", + "UserLoginACL": "Kiểm soát đăng nhập người dùng", + "UserLoginACLCreate": "Tạo điều khiển đăng nhập người dùng", + "UserLoginACLDetail": "Chi tiết kiểm soát đăng nhập người dùng", + "UserLoginACLHelpMsg": "Khi đăng nhập vào hệ thống, có thể kiểm tra dựa trên địa chỉ IP và khoảng thời gian đăng nhập của người dùng để xác định liệu có thể đăng nhập vào hệ thống hay không (có hiệu lực toàn cầu)", + "UserLoginACLHelpText": "Khi đăng nhập vào hệ thống, có thể kiểm tra theo địa chỉ IP và khoảng thời gian đăng nhập của người dùng để xác định xem có thể đăng nhập hay không", + "UserLoginACLUpdate": "Cập nhật kiểm soát đăng nhập người dùng", + "UserLoginACLs": "Kiểm soát đăng nhập người dùng", + "UserLoginLimit": "Giới hạn đăng nhập người dùng", + "UserLoginReport": "Báo cáo đăng nhập của người dùng", + "UserLoginTrend": "Xu hướng đăng nhập tài khoản", + "UserLoginTrends": "Xu hướng đăng nhập của người dùng", + "UserModificationTrends": "Xu hướng sửa đổi của người dùng", + "UserOverview": "Tóm tắt người dùng", + "UserPasswordChangeLog": "Nhật ký thay đổi mật khẩu người dùng", + "UserReport": "Báo cáo người dùng", + "UserSession": "Phiên người dùng", + "UserSwitchFrom": "Chuyển đổi tự động", + "UserUpdate": "Cập nhật người dùng", + "Username": "Tên người dùng", + "UsernamePlaceholder": "Vui lòng nhập tên người dùng", + "Users": "Người dùng", + "UsersAmount": "Người dùng", + "UsersAndUserGroups": "Người dùng/Nhóm người dùng", + "UsersTotal": "Tổng số người dùng", + "Valid": "Cập nhật miền.", + "Variable": "Biến", + "VariableHelpText": "Bạn có thể sử dụng {{ key }} trong lệnh để đọc biến tích hợp", + "VariableName": "Biến số", + "VaultHCPMountPoint": "Điểm kết nối của máy chủ Vault, mặc định là jumpserver", + "VaultHelpText": "1. Vì lý do an ninh, cần cấu hình để mở Vault lưu trữ trong tệp cấu hình.
2. Sau khi mở, điền các cấu hình khác và tiến hành thử nghiệm.
3. Thực hiện đồng bộ dữ liệu, đồng bộ là một chiều, chỉ từ cơ sở dữ liệu cục bộ đồng bộ đến Vault từ xa, sau khi đồng bộ xong, cơ sở dữ liệu cục bộ sẽ không còn lưu trữ mật khẩu, vui lòng sao lưu dữ liệu thật cẩn thận.
4. Sau khi chỉnh sửa cấu hình Vault lần thứ hai, cần khởi động lại dịch vụ.", + "VerificationCodeSent": "Mã xác nhận đã được gửi", + "VerifyFace": "Xác thực khuôn mặt", + "VerifySecret": "Xác thực văn bản mã hóa", + "VerifySignTmpl": "Mẫu tin nhắn xác nhận số điện thoại", + "Version": "Phiên bản", + "View": "Xem", + "ViewMore": "Xem thêm", + "ViewPerm": "Xem quyền truy cập", + "ViewSecret": "Xem văn bản mã hóa", + "VirtualAccountDetail": "Chi tiết tài khoản ảo", + "VirtualAccountHelpMsg": "Tài khoản ảo là những tài khoản chuyên dụng có mục đích cụ thể khi kết nối với tài sản.", + "VirtualAccountUpdate": "Cập nhật tài khoản ảo", + "VirtualAccounts": "Tài khoản ảo", + "VirtualApp": "Ứng dụng ảo", + "VirtualAppDetail": "Chi tiết ứng dụng ảo", + "VirtualApps": "Ứng dụng ảo", + "VisitTimeDistribution": "Phân bố thời gian truy cập", + "Visits": "Lưu lượng truy cập", + "Volcengine": "Động cơ núi lửa", + "Warning": "Cảnh báo", + "Watermark": "Đánh dấu bản quyền", + "WatermarkVariableHelpText": "Bạn có thể sử dụng ${key} trong nội dung dấu watermarked tùy chỉnh để đọc biến tích hợp. \n\n- Bảng điều khiển \n- Tài khoản chưa được quản lý \n- Quyền hạn \n- Cập nhật điều khiển đăng nhập người dùng \n- Hành động người dùng \n- Bằng \n- Chỉ xuất kết quả tìm kiếm \n- Đã tồn tại \n- Tài khoản đã đăng xuất, vui lòng đăng nhập lại \n- Khởi tạo triển khai \n- Sao lưu \n- Phương thức kết nối \n\nVai trò hệ thống là các vai trò chung áp dụng cho tất cả các tổ chức trong nền tảng. Các vai trò này cho phép bạn xác định quyền hạn và cấp độ truy cập cụ thể cho người dùng trong toàn hệ thống. Thay đổi vai trò hệ thống sẽ ảnh hưởng đến tất cả các tổ chức sử dụng nền tảng này. \n\n- Ghi lại lệnh", + "WeChat": "WeChat", + "WeCom": "WeChat Doanh Nghiệp", + "WeComOAuth": "Chứng nhận WeChat doanh nghiệp", + "WeComTest": "Kiểm tra", + "WeakPassword": "Mật khẩu yếu", + "WebCreate": "Tạo tài sản - Web", + "WebHelpMessage": "Tài sản Web phụ thuộc vào ứng dụng từ xa, hãy truy cập cài đặt hệ thống để cấu hình trong ứng dụng từ xa", + "WebSocketDisconnect": "Từ chối", + "WebTerminal": "Giao diện Web", + "WebUpdate": "Cập nhật tài sản-Web", + "Wednesday": "Thứ Tư", + "Week": "Cấu hình chung", + "WeekAdd": "Thêm mới trong tuần này", + "WeekOrTime": "Thứ/ngày giờ", + "WeeklyGrowthTrend": "Xu hướng mới trong tuần này", + "WildcardsAllowed": "Các ký tự đại diện cho phép", + "WindowsPushHelpText": "Tài sản Windows hiện chưa hỗ trợ đẩy khóa", + "WordSep": "", + "Workbench": "Bàn làm việc", + "Workspace": "Không gian làm việc", + "Yes": "Có", + "YourProfile": "Thông tin cá nhân", + "ZStack": "ZStack", + "Zone": "Miền", + "ZoneCreate": "Tạo miền", + "ZoneEnabled": "Kích hoạt cổng kết nối", + "ZoneHelpMessage": "Chọn một tài sản hoặc nút", + "ZoneList": "Danh sách miền", + "ZoneUpdate": "Cập nhật miền", + "assetAddress": "Địa chỉ tài sản", + "assetId": "ID tài sản", + "assetName": "Tên tài sản", + "currentTime": "Thời gian hiện tại", + "disallowSelfUpdateFields": "Không cho phép tự chỉnh sửa trường hiện tại", + "forceEnableMFAHelpText": "Nếu buộc kích hoạt, người dùng sẽ không thể tự động vô hiệu hóa", + "isConsoleCanUse": "Trang quản lý có khả dụng không", + "name": "Tên người dùng", + "removeWarningMsg": "Bạn có chắc chắn muốn xóa bỏ?", + "setVariable": "Cài đặt tham số", + "userId": "ID người dùng", + "userName": "Tên người dùng" +} \ No newline at end of file diff --git a/apps/i18n/lina/zh_hant.json b/apps/i18n/lina/zh_hant.json index 30453135e..63137441e 100644 --- a/apps/i18n/lina/zh_hant.json +++ b/apps/i18n/lina/zh_hant.json @@ -577,6 +577,7 @@ "EsUrl": "不能包含特殊字符 `#`;eg: http://es_user:es_password@es_host:es_port", "Every": "每", "Exclude": "不包含", + "ExcludeAccount": "排除帳號", "ExcludeAsset": "跳過的資產", "ExcludeSymbol": "排除字元", "ExecCloudSyncErrorMsg": "雲帳號配置不完整,請更新後重試", @@ -1357,6 +1358,7 @@ "Support": "支持", "SupportedProtocol": "支持的協議", "SupportedProtocolHelpText": "設置資產支持的協議,點擊設置按鈕可以為協議修改自訂配置,如 SFTP 目錄,RDP AD 域等", + "SupportedTypes": "支持的類型", "Sync": "同步", "SyncAction": "同步動作", "SyncDelete": "同步刪除", @@ -1530,6 +1532,7 @@ "UserCreate": "創建用戶", "UserData": "使用者資料", "UserDetail": "用戶詳情", + "UserGroup": "用戶組", "UserGroupCreate": "創建用戶組", "UserGroupDetail": "用戶組詳情", "UserGroupList": "用戶組", diff --git a/apps/i18n/lion/vi.json b/apps/i18n/lion/vi.json new file mode 100644 index 000000000..3497075ba --- /dev/null +++ b/apps/i18n/lion/vi.json @@ -0,0 +1,110 @@ +{ + "ActionPerm": "Quyền thao tác", + "Admin": "Quản lý", + "AutoFit": "Tự động thích ứng", + "AutoPasteOnClick": "Nhấp vào ô nhập để tự động dán nội dung từ clipboard (cần bật HTTPS và quyền trình duyệt)", + "AvailableShortcutKey": "Các phím tắt có sẵn", + "Back": "Quay lại", + "Cancel": "Hủy bỏ", + "ClearDone": "Làm sạch đã hoàn thành", + "Clipboard": "Bảng chuyển剪贴板", + "Close": "Đóng", + "ConfirmBtn": "Xác nhận", + "Connecting": "Đang kết nối", + "CopyLink": "Sao chép liên kết và mã xác nhận", + "CopyShareURLSuccess": "Sao chép địa chỉ chia sẻ thành công", + "CreateLink": "Tạo liên kết", + "CreateSuccess": "Tạo thành công", + "Display": "Hiển thị", + "Enable": "Kích hoạt", + "ErrTitle": "Kết nối không bình thường", + "ExpiredTime": "Thời gian hiệu lực", + "FileAddUploadingList": "Tệp đã được thêm vào danh sách tải lên", + "FileDownloadDenied": "Không có quyền tải xuống tệp", + "FileManagement": "Quản lý tệp", + "FileUploadStart": "Tải tệp lên bắt đầu", + "FileUploadingWarning": "Tập tin đang được tải lên, không cho phép thao tác.", + "Files": "Quản lý tệp", + "General": "Chung", + "GetShareUser": "Nhập tên người dùng", + "GuaErrClientUnauthorized": "Tên người dùng và mật khẩu xác thực không chính xác, đăng nhập thất bại", + "GuaErrSessionConflict": "Kết nối từ xa đã bị ngắt do xung đột với một kết nối khác. Vui lòng thử lại sau.", + "GuaErrUnSupport": "Yêu cầu hành động này bị cấm", + "GuaErrUpStreamTimeout": "Máy chủ Remote Desktop không phản hồi", + "GuaErrUpstreamNotFound": "Không thể kết nối tới máy chủ máy tính từ xa (mạng không thể truy cập | Lỗi chính sách bảo mật)", + "GuacamoleErrAccessDenied": "Truy cập kết nối từ xa bị từ chối", + "GuacamoleErrActiveSessionTimeLimitExceeded": "Thời gian hoạt động của kết nối từ xa đã vượt quá giới hạn", + "GuacamoleErrAuthenticationFailure": "Xác thực kết nối từ xa thất bại", + "GuacamoleErrConnectionFailed": "Kết nối từ xa thất bại", + "GuacamoleErrCredentialsExpired": "Chứng chỉ kết nối từ xa đã hết hạn", + "GuacamoleErrDNSLookupFailed": "Tra cứu DNS của kết nối từ xa không thành công", + "GuacamoleErrDisconnected": "Kết nối từ xa đã bị ngắt", + "GuacamoleErrDisconnectedByOtherConnection": "Kết nối từ xa bị ngắt bởi kết nối khác", + "GuacamoleErrForciblyDisconnected": "Kết nối từ xa bị ngắt cưỡng bức", + "GuacamoleErrIdleSessionTimeLimitExceeded": "Thời gian rảnh của kết nối từ xa vượt quá giới hạn", + "GuacamoleErrInsufficientPrivileges": "Quyền truy cập của người dùng từ xa không đủ", + "GuacamoleErrLoggedOff": "Người dùng kết nối từ xa đã đăng xuất", + "GuacamoleErrManuallyDisconnected": "Kết nối từ xa đã bị ngắt kết nối thủ công", + "GuacamoleErrManuallyLoggedOff": "Người dùng kết nối từ xa đã bị đăng xuất thủ công", + "GuacamoleErrSSLTLSConnectionFailed": "Kết nối SSL/TLS của kết nối từ xa thất bại", + "GuacamoleErrSecurityNegotiationFailed": "Thương thảo an toàn cho kết nối từ xa thất bại", + "GuacamoleErrServerRefusedConnection": "Máy chủ kết nối từ xa từ chối kết nối.", + "GuacamoleErrServerRefusedConnectionBySecurityType": "Máy chủ kết nối từ xa từ chối kết nối, có thể do loại bảo mật không khớp.", + "GuacamoleErrUnableToConnectToVNCServer": "Không thể kết nối tới máy chủ VNC", + "GuacamoleErrUnsupportedCredentialTypeRequested": "Loại chứng thực cho kết nối từ xa không được hỗ trợ", + "GuacamoleErrUpstreamError": "Đã xảy ra lỗi trên máy chủ kết nối từ xa", + "InputVerifyCode": "Xin vui lòng nhập mã xác thực", + "JMSErrAPIFailed": "Xảy ra lỗi Core API", + "JMSErrAuthUser": "Người dùng chưa được xác thực", + "JMSErrBadParams": "Tham số yêu cầu không hợp lệ", + "JMSErrDisconnected": "Kết nối phiên đã bị ngắt", + "JMSErrGatewayFailed": "Kết nối cổng bị thất bại", + "JMSErrGuacamoleServer": "Không thể kết nối đến máy chủ Guacamole", + "JMSErrIdleTimeOut": "Vượt quá thời gian rảnh tối đa {PLACEHOLDER} phút, ngắt kết nối", + "JMSErrMaxSession": "Đã vượt quá thời gian phiên tối đa {PLACEHOLDER} giờ, ngắt kết nối", + "JMSErrNoSession": "Không thể tìm thấy cuộc trò chuyện", + "JMSErrPermission": "Không có quyền kết nối", + "JMSErrPermissionExpired": "Phân quyền đã hết hạn, ngắt kết nối", + "JMSErrRemoveShareUser": "Bạn đã bị loại khỏi phiên chia sẻ", + "JMSErrTerminatedByAdmin": "Quản trị viên đã chấm dứt phiên", + "JoinShare": "Tham gia chia sẻ", + "KeyboardLayout": "Bố cục", + "LeaveShare": "Rời khỏi chia sẻ", + "LinkAddr": "Địa chỉ liên kết", + "Minute": "Phút", + "Minutes": "Phút", + "Name": "Tên", + "NoData": "Không có dữ liệu", + "OK": "Xác nhận", + "OnlineUser": "Người dùng trực tuyến", + "Other": "Khác", + "Password": "Mật khẩu", + "PauseSession": "Tạm dừng cuộc trò chuyện", + "PleaseInput": "Vui lòng nhập", + "PrimaryUser": "Người dùng chính", + "ReadOnly": "Chỉ đọc", + "Refresh": "Tải lại", + "RemoveShareUserConfirm": "Bạn có chắc chắn muốn gỡ bỏ người dùng này không?", + "RemoveUser": "Xóa người dùng", + "RequireParams": "Tham số bắt buộc", + "ResumeSession": "Khôi phục cuộc trò chuyện", + "SelectAction": "Vui lòng chọn", + "SessionShare": "Chia sẻ phiên làm việc", + "Settings": "Cài đặt", + "Share": "Chia sẻ", + "ShareLink": "Chia sẻ liên kết", + "ShareUser": "Chia sẻ người dùng", + "ShareUserHelpText": "Chưa chọn người dùng, cho phép tất cả mọi người tham gia", + "Shared Drive": "Ổ đĩa chia sẻ", + "Shortcuts": "Phím tắt", + "ShowRemoteClip": "Hiển thị bảng t clipboard từ xa", + "Skip": "Bỏ qua", + "Submit": "Gửi", + "UploadFile": "Tải lên tệp", + "UploadSuccess": "Tải lên thành công", + "Username": "Tên người dùng", + "VerifyCode": "Mã xác thực", + "VirtualKeyboard": "Bàn phím ảo", + "WebSocketError": "Kết nối WebSocket thất bại, vui lòng kiểm tra mạng", + "Writable": "Đọc viết" +} \ No newline at end of file diff --git a/apps/i18n/luna/vi.json b/apps/i18n/luna/vi.json new file mode 100644 index 000000000..2ccbb2319 --- /dev/null +++ b/apps/i18n/luna/vi.json @@ -0,0 +1,289 @@ +{ + "ACL reject login asset": "Đăng nhập lần này đã bị từ chối, lý do là do hạn chế của chính sách kiểm soát truy cập", + "Account info": "Thông tin tài khoản", + "Account not found": "Không tìm thấy tài khoản", + "Account: ": "Tài khoản: {{value}}", + "Action: ": "Hành động:", + "ActionPerm": "Quyền truy cập", + "Advanced option": "Tùy chọn nâng cao", + "All sessions": "Tất cả phiên", + "Applet": "Ứng dụng từ xa", + "Applet connect method": "Cách kết nối ứng dụng từ xa", + "Are you sure to reconnect it?(RDP not support)": "Bạn có chắc chắn muốn kết nối lại không? (RDP tạm thời không hỗ trợ)", + "Asset disabled": "Tài sản này đã bị vô hiệu hóa, xin vui lòng liên hệ quản trị viên", + "Asset not found or You have no permission to access it, please refresh asset tree": "Mật khẩu là mật khẩu đăng nhập vào hệ thống của bạn", + "Asset tree loading method": "Cấu hình phương thức tải tài sản", + "Asset: ": "Tài sản: {{value}}", + "Assignees": "người xử lý", + "Auto": "Tự động", + "Automatic login next": "Đăng nhập tự động lần sau (nhấp chuột phải vào kết nối tài sản để chọn lại)", + "AvailableHotkeys": "Phím tắt khả dụng", + "Backspace as Ctrl+H": "Nhập liệu ký tự Backspace như Ctrl+H", + "Batch actions": "Hành động hàng loạt", + "Batch connect": "Kết nối hàng loạt", + "BatchCommands": "Lệnh hàng loạt", + "Belgian French keyboard layout": "Tiếng Pháp Bỉ (Azerty)", + "CLI": "Dòng lệnh", + "CLI font size": "Kích thước phông chữ terminal ký tự", + "Cancel": "Hủy bỏ", + "Charset": "Bộ ký tự", + "Checkbox": "Chọn nhiều", + "Choose a User": "Chọn một người dùng", + "Click to copy": "Nhấp để sao chép", + "Click to download rdp file": "Nhấp để tải xuống tệp RDP", + "Client": "Khách hàng", + "Clone Connect": "Sao chép cửa sổ", + "Close": "Tắt", + "Close All Tabs": "Đóng tất cả", + "Close Current Tab": "Đóng hiện tại", + "Close Left Tabs": "Đóng bên trái", + "Close Other Tabs": "Đóng các mục khác", + "Close Right Tabs": "Đóng bên phải", + "Close split connect": "Đóng chế độ màn hình chia", + "Command": "Lệnh", + "Command Line": "Dòng lệnh", + "CommandBar": "Thanh lệnh", + "Confirm": "Xác nhận", + "ConfirmCreation": "Xác nhận tạo", + "Connect": "Kết nối", + "Connect checked": "Kết nối đã chọn", + "Connect command line": "Kết nối dòng lệnh", + "Connect method": "Phương thức kết nối", + "ConnectSessionCount": "Đã kết nối {{ count }} phiên", + "ConnectionTime": "Thời gian kết nối", + "Copied": "Đã sao chép", + "Copy": "Sao chép", + "Copy link": "Sao chép liên kết", + "CreateLink": "Tạo liên kết", + "Current online": "Đang trực tuyến hiện tại", + "Current session": "phiên hiện tại", + "DarkBlue": "Màu xanh đậm", + "DarkGray": "Ẩn thanh bên trái", + "Database": "Cơ sở dữ liệu", + "Database connect info": "Thông tin kết nối cơ sở dữ liệu", + "Database disabled": "Không hỗ trợ hình thức kết nối này, xin vui lòng liên hệ quản trị viên", + "Database info": "Thông tin cơ sở dữ liệu", + "Database token help text": "Loại cơ sở dữ liệu token sẽ được lưu trong 5 phút, có nghĩa là sau khi sử dụng token, nó sẽ không ngay lập tức hết hiệu lực, mà phải sau 5 phút ngắt kết nối, token này mới hoàn toàn không còn hiệu lực", + "Databases": "Cơ sở dữ liệu", + "Default": "Mặc định", + "Directly": "Tên người dùng chỉ định tài sản và tài khoản kết nối", + "Disable auto completion": "Vô hiệu hóa tự động hoàn thành", + "DisabledAsset": "Tài sản đã bị vô hiệu hóa", + "Disconnect": "Ngắt kết nối", + "Disfavor": "Hủy bỏ đánh dấu yêu thích", + "Do not close this page": "Tùy chọn + Shift + Trái / Phải", + "Document": "Tài liệu", + "Don't prompt again": "Lưu thành công", + "DownArrow": "Màu xám đậm", + "Download": "Tải xuống", + "Download the latest client": "Chuyển sang lệnh nhanh", + "DownloadClient": "Tải xuống ứng dụng", + "DownloadClientMsg": "Khách hàng JumpServer chưa được cài đặt, đi cài đặt và tải xuống ngay bây giờ", + "Driver redirect": "Gắn đĩa", + "Expand": "Mở rộng", + "Expand all": "Mở rộng tất cả", + "Expand all asset": "Mở rộng tất cả tài sản dưới nút", + "Expire time": "Quản lý tệp", + "ExpiredTime": "Thời hạn hiệu lực", + "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 required": "Không hiển thị lại lần sau", + "Face verify success": "Xác thực khuôn mặt thành công", + "FaceOnlineNotSupported": "Không hỗ trợ xác minh trực tuyến bằng khuôn mặt", + "Failed to open address": "Mở địa chỉ không thành công", + "Favorite": "Yêu thích", + "File Manager": "Phiên đang được giám sát", + "FileManagement": "Quản lý tệp", + "FileManagerConnectionFailed": "Kết nối quản lý tệp thất bại", + "Fold": "Gấp lại", + "Fold all": "Gấp gọn tất cả", + "Force refresh": "làm mới cưỡng bức", + "Found": "Khám phá", + "French keyboard layout": "Tiếng Pháp (Azerty)", + "Full Screen": "Chế độ toàn màn hình", + "Full screen": "Toàn màn hình", + "GUI": "Đồ họa", + "General": "Cấu hình cơ bản", + "Go to Settings": "Đi đến cài đặt", + "Help": "Trợ giúp", + "Help or download": "Trợ giúp menu → Tải xuống", + "Help text": "Giới thiệu", + "Hide left manager": "Vui lòng nhập mật khẩu", + "High-speed broadband (2 Mbps – 10 Mbps )": "Băng thông cao (2 Mbps - 10 Mbps)", + "HistoryCommands": "Lệnh lịch sử", + "Host": "Máy chủ", + "Hotkeys": "Phím tắt", + "Info": "Gợi ý", + "InstallClientMsg": "Khách hàng JumpServer chưa được cài đặt, bây giờ có muốn đi tải và cài đặt không?", + "Japanese keyboard layout": "Tiếng Nhật (Qwerty)", + "Keyboard keys": "Lần đăng nhập này cần xác thực khuôn mặt, bạn có muốn tiếp tục không?", + "Keyboard layout": "Bố cục bàn phím", + "Keyboard switch session": "Chuyển đổi phiên → Phím tắt", + "Kubernetes": "Kubernetes", + "Language": "Ngôn ngữ", + "Last login": "Lần đăng nhập trước", + "Launch Program": "Khởi động chương trình", + "LeftArrow": "Mũi tên sang trái", + "LeftInfo": "Nhấn vào ghi chép lệnh để nhanh chóng xác định video", + "LinkAddr": "Địa chỉ liên kết", + "Load tree async": "Tải tài sản không đồng bộ", + "Loading": "Đang tải...", + "LoadingFileManager": "Đang tải trình quản lý tệp...", + "Log out": "Đăng xuất", + "Login reminder": "Nhắc nhở đăng nhập", + "Login review approved": "Đăng nhập đã được phê duyệt, đang kết nối tài sản...", + "LoginExpireMsg": "Đăng nhập hiện tại đã hết thời gian, xin đừng đóng cửa sổ. Bạn có thể phục hồi trang hiện tại sau khi đăng nhập lại trong cửa sổ mới, nếu không phục hồi được hãy làm mới trang.", + "Low Speed Broadband (256 Kbps - 2 Mbps)": "Băng thông thấp (256 Kbps - 2 Mbps)", + "Manual accounts": "Tài khoản thủ công", + "Minute": "Phút", + "Minutes": "Phân bổ", + "Module": "Mô-đun", + "Multi Screen": "Hiển thị đa màn hình", + "My applications": "ứng dụng của tôi", + "My assets": "Tài sản của tôi", + "Name": "Tên", + "Native": "Khách hàng", + "Need review for login asset": "Đăng nhập lần này cần có kiểm tra thủ công, có tiếp tục không?", + "Need to use": "Cần sử dụng", + "No": "Không", + "No account available": "Không có tài khoản có sẵn", + "No available connect method": "Không có phương thức kết nối nào khả dụng", + "No facial features": "Chưa có đặc điểm khuôn mặt, vui lòng truy cập trang thông tin cá nhân để liên kết.", + "No matching found": "Không có mục phù hợp", + "No permission": "Không có quyền", + "No protocol available": "Không có giao thức nào có sẵn", + "NoOnlineUser": "Chưa có người dùng trực tuyến", + "NoOnlineUsers": "Hiện tại không có người dùng trực tuyến", + "NoTabs": "Không có cửa sổ", + "Not quick command": "Chưa có lệnh tắt", + "OnlineUser": "Người dùng trực tuyến", + "Open in new window": "Mở cửa sổ mới", + "Operator": "Người dùng hệ thống", + "Password": "mật khẩu", + "Password is token password on the table": "mật khẩu là mật khẩu Token trong bảng", + "Password is your password login to system": "Tiếng Thổ Nhĩ Kỳ-Q (Qwerty)", + "Pause": "Tạm dừng", + "Pause task has been send": "Nhiệm vụ tạm dừng đã được gửi", + "Play List": "Danh sách phát", + "Please choose an account": "Vui lòng chọn một người dùng.", + "Please complete the face verification": "Vui lòng hoàn thành xác thực khuôn mặt này", + "Please input password": "Vui lòng nhập mật khẩu", + "PleaseEnterYourUsername": "Xin vui lòng nhập tên người dùng", + "Port": "Cổng", + "PrimaryUser": "Người dùng chính", + "Protocol": "Giao thức", + "Protocol: ": "Thỏa thuận: {{value}}", + "RDP Client": "RDP Client", + "RDP File": "Vui lòng hoàn thành xác thực khuôn mặt này.", + "RDP client options": "Tùy chọn RDP Client", + "RDP color quality": "Chất lượng màu RDP", + "RDP connection speed": "Tốc độ kết nối RDP", + "RDP file reusable": "Tệp RDP có thể tái sử dụng", + "RDP resolution": "Độ phân giải RDP", + "RDP smart size": "Kích thước thông minh RDP", + "Re-use for a long time after opening": "Khi được bật, thông tin kết nối này có thể được sử dụng nhiều lần trong thời gian dài.", + "ReadOnly": "Chỉ đọc", + "Reconnect": "Kết nối lại", + "Redirecting": "Đang chuyển hướng", + "Refresh": "Làm mới", + "Remember password": "nhớ mật khẩu", + "Remember select": "Nhớ lựa chọn", + "RemoteApp": "Ứng dụng từ xa", + "RemoveShareUserConfirm": "Bạn có chắc chắn muốn xóa người dùng này không?", + "Reselect connection method": "Có thể chọn lại cách kết nối", + "Resume": "Khôi phục", + "Resume task has been send": "Nhiệm vụ phục hồi đã được gửi", + "Right click asset": "Nhấp chuột phải vào tài sản → Kết nối", + "Right click node": "Nhấp chuột phải vào nút → Mở rộng tất cả", + "Right mouse quick paste": "Nhấp chuột phải để dán nhanh", + "RightArrow": "Mũi tên sang phải", + "Run it by client": "Sử dụng khách hàng để thực hiện", + "SQL Client": "Máy khách SQL", + "Save command": "Lệnh lưu", + "Save success": "Tập tin RDP", + "Search": "Tìm kiếm", + "Select account": "Chọn tài khoản", + "SelectCommand": "Vui lòng chọn lệnh cần thực hiện", + "Send": "Gửi", + "Send command": "Gửi lệnh", + "Send text to all ssh terminals": "Gửi đến tất cả các cuộc hội thoại", + "SendCommandPlaceholder": "Nhập lệnh, nhấn Enter để xuống dòng, Ctrl+Enter để thực hiện lệnh", + "Session": "phiên.", + "SessionIsBeingMonitored": "Kết nối màn hình đôi", + "SessionShare": "Chia sẻ phiên", + "Set reusable": "Bật tái sử dụng", + "Setting": "Cài đặt", + "Settings or basic settings": "Cài đặt menu → Cài đặt cơ bản", + "ShareCode": "Mã chia sẻ", + "ShareLink": "Chia sẻ liên kết", + "ShareSession": "Chia sẻ phiên", + "ShareUser": "Chia sẻ người dùng", + "Show left manager": "Hiển thị thanh bên trái", + "Skip": "Bỏ qua", + "Skip manual password": "Bỏ qua cửa sổ mật khẩu thủ công", + "Special accounts": "Tài khoản đặc biệt", + "Speed": "Tốc độ", + "Split connect": "Mũi tên hướng xuống", + "Split connect number": "Một phiên một lúc hỗ trợ tối đa 3 kết nối màn hình phân chia", + "Split vertically": "Chia màn hình dọc", + "SplitVertical": "Chia sẻ theo chiều dọc", + "Start Time: ": "Thời gian bắt đầu: {{value}}", + "Stop": "dừng lại", + "Support": "Hỗ trợ", + "Swiss French keyboard layout": "Người dùng", + "Switch to input command": "Chuyển sang chế độ nhập lệnh", + "Switch to quick command": "Thời gian hết hạn", + "Tab List": "Danh sách cửa sổ", + "Tabs": "Cửa sổ", + "The connection method is invalid, please refresh the page": "Cách kết nối này đã hết hiệu lực, vui lòng làm mới trang", + "Theme": "Chủ đề", + "ThemeSyncFailed": "Đồng bộ chủ đề thất bại", + "ThemeSyncSuccessful": "Chủ đề đồng bộ thành công", + "Ticket review approved for login asset": "Lần đăng nhập này đã được kiểm tra, bạn có muốn kết nối tài sản không?< -SEP->Không tìm thấy tài sản hoặc bạn không có quyền truy cập, vui lòng làm mới cây tài sản", + "Ticket review closed for login asset": "Đợt xem xét đăng nhập này đã đóng, không thể kết nối tài sản", + "Ticket review pending for login asset": "Đơn đăng nhập đã được nộp, đang chờ người tiếp nhận xem xét, bạn cũng có thể sao chép liên kết và gửi cho họ", + "Ticket review rejected for login asset": "lần đăng nhập này đã bị từ chối, không thể kết nối tài sản", + "Tips": "gợi ý", + "Token expired": "Token đã hết hạn, vui lòng kết nối lại", + "TokenVerificationFailedLeaseReconnect": "Xác thực Token thất bại, vui lòng kết nối lại", + "Tool download": "Tải xuống công cụ", + "Turkey keyboard layout": "Tên người dùng@miền AD", + "TurnOffReminders": "Bạn có chắc chắn muốn đóng kết nối hiện tại không?", + "Type tree": "Loại cây", + "UK English keyboard layout": "UK English (Qwerty)", + "US English keyboard layout": "Tiếng Anh Mỹ (Qwerty)", + "UpArrow": "Mũi tên lên", + "User": "Người dùng", + "User: ": "Người dùng: {{value}}", + "Username": "Tải xuống ứng dụng mới nhất", + "Username@Domain": "Xin đừng đóng trang này", + "Users": "Người điều hành", + "Using token": "Sử dụng Token", + "VerificationFailed": "Kiểm tra không thành công", + "View": "Xem", + "Viewer": "Xem người", + "VirtualApp": "Ứng dụng ảo", + "Virtualapp connect method": "Phương thức kết nối ứng dụng ảo", + "Web Terminal": "Giao diện Web", + "Website": "Trang chủ", + "With secret accounts": "Tài khoản quản lý", + "WordSep": "- Không có quyền\n- Kiểm tra thất bại\n- Tài sản đã bị vô hiệu hóa\n- Hủy bỏ\n- Thời gian bắt đầu\n- Mở cửa sổ mới\n- Dòng lệnh\n- Cấu hình phương thức tải cây tài sản\n- Giao thức: {{value}}\n- Chọn nhiều\n- Tạo liên kết\n- Sao chép cửa sổ\n- Phân\n- Phương thức kết nối ứng dụng ảo", + "Writable": "Có thể viết", + "Yes": "là", + "account": "Tài khoản", + "asset": "Tài sản", + "cols": "Số cột", + "confirm": "Xác nhận", + "connect info": "Kết nối thông tin", + "connectDisabledTipsMethodDisabled": "Gợi ý: Không tìm thấy máy phát hành ứng dụng từ xa hiệu quả, tài nguyên hiện tại không thể kết nối, xin vui lòng liên hệ với quản trị viên để xử lý.", + "connectDisabledTipsNoAccount": "Thông báo: Không tìm thấy tài khoản ủy quyền hợp lệ, tài nguyên hiện tại không thể kết nối, xin vui lòng liên hệ với người quản lý để xử lý", + "connectDisabledTipsNoConnectMethod": "Gợi ý: Không tìm thấy phương thức kết nối hợp lệ, tài nguyên hiện tại không thể kết nối, xin vui lòng liên hệ quản trị viên để xử lý", + "download": "Tải xuống", + "recordingIsBeingDownloaded": "Đang tải video, xin vui lòng chờ", + "rows": "số dòng", + "scriptLibrary": "Thư viện kịch bản", + "start time": "Thời gian bắt đầu", + "success": "Thành công", + "system user": "Tên đăng nhập", + "user": "Người dùng" +} \ No newline at end of file diff --git a/apps/reports/views.py b/apps/reports/views.py index ecca468f4..0d243b90e 100644 --- a/apps/reports/views.py +++ b/apps/reports/views.py @@ -71,7 +71,6 @@ def export_chart_to_pdf(chart_name, sessionid, request=None): url = urllib.parse.unquote(chart_info['path']) if settings.DEBUG_DEV: url = url.replace(":8080", ":9528") - days = request.GET.get('days', 7) oid = request.COOKIES.get("X-JMS-ORG") days = request.GET.get('days', 7) url = url + f"?days={days}&oid={oid}" @@ -93,6 +92,7 @@ def export_chart_to_pdf(chart_name, sessionid, request=None): } ]) page = context.new_page() + page_title = page.title() try: page.goto(url, wait_until='networkidle') page.wait_for_function('window.echartsFinished === true', timeout=10000)