Files
Termix/plugins/host-metrics/locales/translated/vi_VN.json
T
Luke GustafsonandZacharyZcR 6b708106e1 release-2.9.1 (#1557)
* fix(sso): send the PKCE verifier for GitHub login (#1534)

* fix(remote-desktop): clip cursor overflow without disabling zoom (#1535)

* test(remote-desktop): preserve sessions beyond one hour (#1536)

* fix(hosts): expose controls for overflowing editor tabs (#1537)

* fix(hosts): expose controls for overflowing editor tabs

* test(hosts): mock resize observation in admin panel tests

* fix(status): skip TCP probes while host sessions are active (#1538)

* fix(database): batch session activity persistence (#1539)

* docs(api): describe cookie and API key authentication (#1540)

* fix(snippets): repair missing note column on SQLite upgrades (#1541)

* fix(docker): retain stored SSH credential association (#1543)

* fix(file-manager): render transfer toasts without plugin hooks (#1546)

* feat(hosts): keep compact row actions inline (#1547)

* fix(auth): allow retrying unavailable second-factor interfaces (#1549)

* fix(auth): reject unresolved legacy identity provisioning (#1550)

* fix(desktop): ship the plugin SDK inside Mac App Store builds (#1551)

* fix(tmux): pass full session info to the terminal's session picker (#1552)

The tmux.sessions service reduced detected sessions to bare names, but the
picker reads session.name, so every entry rendered blank and selecting one
sent an empty name, which created a new session instead of attaching.

* fix(ssh): read force keyboard-interactive as a boolean when resolving hosts (#1553)

The column holds the text "true"/"false", and the resolver passed it
through as-is. The string "false" is truthy, so the password provider
treated every saved host as forced keyboard-interactive and left the
password out. Jump hops are built straight from the resolved host, so a
password hop whose server doesn't offer keyboard-interactive failed with
"All configured authentication methods failed".

* fix(database): batch database saves for bulk host writes (#1554)

* fix(database): yield to the event loop between database saves

Each SQLite save serializes and encrypts the whole database into new
buffers, which V8 only releases once the event loop turns. Boot
migrations and bulk host import write plugin settings per host and per
key in an awaited loop, so hundreds of full copies piled up and the
container ran out of memory.

* fix(database): save once per bulk host write instead of once per row

On SQLite every repository write force-saves the whole database. Boot
plugin data migrations, host defaults materialization and the bulk
host routes write one row per host per setting, so they serialized and
encrypted the full database hundreds of times in a row.

DatabaseSaveTrigger.batched wraps a function so force saves made while
it runs collapse into a single save when it finishes. Nested scopes fold
into the outer one, and work that outlives its scope saves normally.

* feat(hosts): add instance-wide predefined tag suggestions (#1548)

* feat(hosts): add shared predefined tag suggestions

* style(hosts): format tag catalog routes

* test(database): advance fake timers past the save yield (#1555)

* fix(i18n): complete Simplified Chinese core and plugin translations (#1542)

* fix(i18n): complete Chinese onboarding and navigation labels

* fix(i18n): translate remaining Chinese core and plugin interfaces

* fix(i18n): translate host editor tab overflow controls

* fix(i18n): use consistent Chinese fleet terminology

* fix(i18n): localize hardcoded controls and plugin views

* fix(i18n): translate built-in homepage widget catalog

* test(homepage): follow translated timezone placeholder

* fix(i18n): translate plugin-provided homepage widgets

* fix(i18n): localize feature settings section titles

* fix: 2.8 oidc accounts unable to sign in after upgrading (#1381)

* fix: plugins losing the saved ssh login when copying a host (#1391)

* fix: fleets, proxmox and automations not getting the host sudo password

* fix: host imports running a defaults pass and metrics restart per host (#1384)

* fix: high cpu from status probes and full database saves on every sample (#1300)

* fix: user data export freezing the server (#1393)

* fix: op:// secret references rejected as ssh keys on credentials (#1394)

* fix: slow file deletes from the trash lookups on every delete (#1390)

* fix: add openapi docs and error handling to host tag routes

* test: compare download stream buffers directly so it stops timing out

* chore: drop em dash from host row comment

* chore: update release notes for 2.9.1

* fix: restore space to add host tags and redesign predefined tags editor

* fix: host key silently accepted when the host is missing from the database (#1397)

* fix: clearer host login failed status label and fix its translations (#1396)

* chore: add host key and status label fixes to release notes

* fix: sso and ldap provider dialogs overflowing the screen and using mismatched toggles

* chore: increment ver

* fix(audit): store plugin entries with no acting user as a null user_id (#1556)

Plugin audit entries written outside a request used the literal "system"
as user_id. That column references users.id, so the insert was refused
(Postgres logs it as an FK violation) and the entry was silently dropped.
Write null instead and keep "system" / plugin:<id> in username.

* chore: add sso/ldap dialog and audit log fixes to release notes

* fix: tunnels and host settings missing from shared hosts on desktop

* fix: remote desktop logins missing from shared hosts on desktop

* fix: simplify host status to online/offline and keep it live without a refresh

* chore: sync Crowdin translations for 2.9.1

---------

Co-authored-by: ZacharyZcR <zacharyzcr1984@gmail.com>
2026-10-04 15:11:41 -05:00

316 lines
14 KiB
JSON

{
"nav": {
"hostMetrics": "Chỉ số máy chủ"
},
"hostMetrics": {
"cpu": "CPU",
"memory": "Bộ nhớ",
"disk": "Ổ đĩa",
"network": "Mạng",
"uptime": "Thời gian hoạt động",
"processes": "Tiến trình",
"available": "Khả dụng",
"free": "Trống",
"connecting": "Đang kết nối...",
"connectionFailed": "Kết nối máy chủ thất bại",
"naCpus": "N/A CPU",
"cpuCores_one": "{{count}} Lõi",
"cpuCores_other": "{{count}} Lõi",
"cpuUsage": "Mức sử dụng CPU",
"memoryUsage": "Mức sử dụng bộ nhớ",
"diskUsage": "Mức sử dụng ổ đĩa",
"selectFilesystem": "Chọn hệ thống tệp",
"temperature": "Nhiệt độ",
"highestTemperature": "Nhiệt độ cao nhất",
"primaryTemperatureSensor": "Cảm biến chính",
"gpu": {
"title": "GPU",
"noDevice": "Không phát hiện thấy GPU NVIDIA. Hãy cài đặt trình điều khiển NVIDIA (nó cung cấp lệnh nvidia-smi) để xem các thông số GPU.",
"driver": "Tài xế {{version}}",
"utilization": "Sử dụng",
"memory": "VRAM",
"temperature": "Nhiệt độ",
"power": "Quyền lực",
"fan": "Cái quạt",
"processes": "Các quy trình GPU",
"noProcesses": "Hiện không có tiến trình nào đang sử dụng GPU."
},
"failedToFetchHostConfig": "Không tải được cấu hình máy chủ",
"serverOffline": "Máy chủ ngoại tuyến",
"cannotFetchMetrics": "Không thể tải số liệu từ máy chủ ngoại tuyến",
"totpFailed": "Xác minh TOTP thất bại",
"noneAuthNotSupported": "Host Metrics không hỗ trợ kiểu xác thực 'none'.",
"noHostSelected": "Chưa chọn máy chủ",
"load": "Tải",
"systemInfo": "Thông tin hệ thống",
"hostname": "Tên máy chủ",
"operatingSystem": "Hệ điều hành",
"kernel": "Nhân",
"seconds": "giây",
"networkInterfaces": "Giao diện mạng",
"noInterfacesFound": "Không tìm thấy giao diện mạng nào",
"noProcessesFound": "Không tìm thấy tiến trình nào",
"processesTotal": "Tổng",
"processesRunning": "đang chạy",
"loginStats": "Thống kê đăng nhập SSH",
"noRecentLoginData": "Không có dữ liệu đăng nhập gần đây",
"ports": {
"title": "Cổng đang lắng nghe",
"protocol": "Giao thức",
"port": "Cổng",
"address": "Địa chỉ",
"process": "Tiến trình",
"search": "Tìm kiếm cổng...",
"allProtocols": "Tất cả",
"noData": "Không có dữ liệu cổng đang lắng nghe"
},
"firewall": {
"title": "Tường lửa",
"inactive": "Không hoạt động",
"policy": "Chính sách",
"rules": "quy tắc",
"noRules": "Không có quy tắc nào trong chuỗi này",
"noData": "Không có dữ liệu tường lửa",
"action": "Hành động",
"protocol": "Giao thức",
"port": "Cổng",
"source": "Nguồn",
"anywhere": "Mọi nơi",
"chains": "chuỗi"
},
"loadAvg": "Tải trung bình",
"swap": "Swap",
"architecture": "Kiến trúc",
"refresh": "Làm mới",
"retry": "Thử lại",
"customize": "Tùy chỉnh bố cục",
"reset": "Đặt lại",
"tabLive": "Trực tiếp",
"editModeInstructions": "Kéo thẻ để sắp xếp lại, kéo cạnh dưới để thay đổi kích thước, và dùng nút chiều rộng để thay đổi độ rộng thẻ. Thêm hoặc xóa thẻ bên dưới.",
"managers": {
"services": "Dịch vụ",
"processInspector": "Trình kiểm tra tiến trình",
"logViewer": "Trình xem nhật ký",
"cron": "Cron Jobs",
"packages": "Gói",
"ssl": "Chứng chỉ SSL",
"firewall": "Tường lửa",
"users": "Người dùng & Quyền",
"healthCheck": "Kiểm tra sức khỏe",
"diskBreakdown": "Phân tích ổ đĩa",
"systemdTimers": "Bộ hẹn giờ",
"topMemory": "Top theo bộ nhớ",
"noData": "Không có dữ liệu",
"sudoHint": "Đặt mật khẩu sudo cho máy chủ này trong trình chỉnh sửa máy chủ để kích hoạt các hành động đặc quyền.",
"filter": "Lọc...",
"start": "Khởi động",
"stop": "Dừng",
"restart": "Khởi động lại",
"actionDone": "{{name}} được cập nhật",
"actionFailed": "Hành động thất bại",
"signalSent": "Đã gửi tín hiệu đến PID {{pid}}",
"killHint": "Nhấp: kết thúc (SIGTERM). Nhấp chuột phải: buộc kết thúc (SIGKILL).",
"working": "Đang làm việc...",
"update": "Cập nhật",
"upgradeAll": "Nâng cấp tất cả",
"allUpToDate": "Tất cả đều mới nhất",
"save": "Lưu",
"command": "Lệnh",
"enabled": "Đã bật",
"cronSaved": "Đã cập nhật crontab",
"clients": "Máy khách",
"dryRun": "Chạy thử",
"renew": "Gia hạn",
"noAcmeClient": "Không tìm thấy máy khách ACME (certbot hoặc acme.sh) trên máy này.",
"addInputRule": "Thêm quy tắc INPUT",
"firewallWarning": "Thay đổi chỉ tạm thời, chưa được lưu vĩnh viễn. Cẩn thận kẻo tự khóa mình ra ngoài.",
"ruleApplied": "Quy tắc đã được áp dụng",
"invalidPort": "Nhập cổng hợp lệ (1-65535)",
"newUsername": "Tên người dùng mới",
"addUser": "Thêm",
"deleteUser": "Xóa người dùng",
"noHealthChecks": "Chưa có kiểm tra trạng thái nào được cấu hình.",
"follow": "Theo dõi",
"noLogData": "Không có dữ liệu nhật ký.",
"tree": "Dạng cây",
"enableDisable": "Bật / tắt khi khởi động",
"grantSudo": "Cấp quyền sudo",
"revokeSudo": "Thu hồi quyền sudo",
"sslIssueCert": "Cấp chứng chỉ",
"sslExpired": "Đã hết hạn",
"sslInDays": "trong {{days}}d",
"sslNeedDomain": "Nhập ít nhất một tên miền",
"sslIssued": "Đã cấp chứng chỉ",
"sslDomainsPlaceholder": "example.com, www.example.com",
"sslHttpStandalone": "HTTP (độc lập)",
"sslHttpWebroot": "HTTP (webroot)",
"sslDns": "DNS",
"sslDnsProvider": "Nhà cung cấp DNS (ví dụ: cloudflare)",
"sslIssueHint": "Thông tin xác thực nhà cung cấp DNS phải được cấu hình trên máy chủ.",
"sslRevoke": "Thu hồi chứng chỉ",
"sslRevoked": "Chứng chỉ đã bị thu hồi",
"sslRevokeConfirm": "Thu hồi và xóa chứng chỉ \"{{name}}\"? Hành động này không thể hoàn tác.",
"healthRun": "Chạy",
"healthName": "Tên",
"healthTarget": "Máy chủ / địa chỉ",
"healthAddCheck": "Thêm kiểm tra",
"healthSaved": "Đã lưu kiểm tra sức khỏe",
"healthMissingFields": "Mỗi kiểm tra cần có tên và mục tiêu",
"logFile": "Tệp",
"logUnit": "Đơn vị",
"logCustomPath": "Đường dẫn tùy chỉnh trong /var/log (tùy chọn)",
"logGrep": "Lọc dòng...",
"firewallPersist": "Lưu quy tắc",
"firewallPersisted": "Đã lưu quy tắc tường lửa",
"wireguard": "WireGuard",
"wgNotInstalled": "WireGuard chưa được cài đặt trên máy chủ này",
"wgNoInterfaces": "Chưa cấu hình giao diện WireGuard nào",
"wgInterfaceUp": "Khởi động",
"wgInterfaceDown": "Dừng",
"wgBringingUp": "Đang khởi động {{name}}...",
"wgBringingDown": "Đang dừng {{name}}...",
"wgInterfaceUpDone": "{{name}} đã hoạt động",
"wgInterfaceDownDone": "{{name}} đã dừng",
"wgListenPort": "Cổng",
"wgPublicKey": "Khóa công khai",
"wgEndpoint": "Điểm cuối",
"wgAllowedIPs": "IP được phép",
"wgLastHandshake": "Lần bắt tay cuối",
"wgHandshakeNever": "Chưa bao giờ",
"wgTransfer": "Truyền tải",
"wgNoPeers": "Không có đồng nghiệp"
}
},
"metricsHistory": {
"title": "Lịch sử chỉ số",
"historySuffix": "Lịch sử",
"cpuMemoryDisk": "CPU / Bộ nhớ / Ổ đĩa",
"network": "Mạng",
"download": "RX",
"upload": "TX",
"noData": "Không có dữ liệu lịch sử cho khoảng thời gian này.",
"custom": "Tùy chỉnh",
"to": "đến",
"apply": "Áp dụng",
"viewHistory": "Xem lịch sử"
},
"hosts": {
"tabHostMetrics": "Số liệu máy chủ",
"metricsCollectionLabel": "Thu thập số liệu",
"enableMetricsLabel": "Bật thu thập số liệu",
"enableMetricsDesc": "Thu thập CPU, RAM, đĩa và các số liệu khác từ máy này",
"useGlobalMetrics": "Dùng khoảng thời gian toàn cục",
"useGlobalMetricsDesc": "Ghi đè bằng khoảng thời gian thu thập số liệu toàn máy chủ",
"metricsIntervalS": "Khoảng thu thập số liệu (giây)",
"metricsIntervalDesc2": "Số giây giữa các lần chụp số liệu",
"excludedMountsLabel": "Giá đỡ bị loại trừ",
"monitoredMountsLabel": "Đường dẫn được giám sát tùy chỉnh",
"monitoredMountsDesc": "Thêm các đường dẫn không được hiển thị dưới dạng các điểm gắn kết riêng biệt, bao gồm cả các đường dẫn Home Assistant được gắn kết bằng bind, chẳng hạn như /config.",
"monitoredMountPathPlaceholder": "Đường dẫn (/config, /mnt/data)",
"monitoredMountLabelPlaceholder": "Nhãn (tùy chọn)",
"addMonitoredMount": "Thêm đường dẫn",
"excludedMountsDesc": "Ẩn các điểm gắn kết hoặc loại hệ thống tập tin cụ thể (ví dụ: nfs, cifs) khỏi thông tin sử dụng ổ đĩa và cảnh báo cho máy chủ này.",
"excludedMountsPlaceholder": "Đường dẫn gắn kết (/mnt/nas) hoặc loại hệ thống tệp (nfs, cifs)",
"excludedMountsEmpty": "Không có điểm gắn kết nào bị loại trừ. Tất cả các hệ thống tập tin được phát hiện đều được hiển thị.",
"addExcludedMount": "Thêm",
"visibleWidgets": "Widget hiển thị",
"widgetsMovedToHostMetrics": "Các thẻ hiện được thêm, sắp xếp và thay đổi kích thước trực tiếp trong tab Số liệu máy. Mở Số liệu máy cho máy này và dùng Tùy chỉnh để chọn thẻ hiển thị.",
"hostNotFound": "Không tìm thấy máy chủ",
"loadingHost": "Đang tải máy chủ..."
},
"onboarding": {
"feature_metrics": "Số liệu và cảnh báo",
"feature_metrics_desc": "Theo dõi hiệu năng CPU, bộ nhớ và ổ đĩa theo thời gian, và nhận cảnh báo khi chúng gặp sự cố."
},
"admin": {
"metricsHistoryRetention": "Thời gian lưu trữ lịch sử số liệu",
"metricsHistoryRetentionRange": "1 đến 90 ngày",
"days": "ngày"
},
"homepage": {
"noData": "Không có dữ liệu",
"showCurrentValue": "Hiển thị giá trị hiện tại",
"chartMetric": "Chỉ số",
"metricRange": "Phạm vi",
"host": "Máy chủ",
"loading": "Đang tải...",
"metricCpu": "CPU",
"metricDisk": "Đĩa",
"metricHostname": "Tên máy chủ",
"metricKernel": "Nhân",
"metricMemory": "Bộ nhớ",
"metricNetwork": "Mạng",
"metricOs": "Hệ điều hành",
"metricProcesses": "Tiến trình",
"metricProcessesRunning": "đang chạy",
"metricProcessesTotal": "tổng",
"metricUptime": "Thời gian hoạt động",
"metricsNotAvailable": "Chỉ số không khả dụng",
"noHostSelected": "Chưa chọn máy chủ",
"selectHost": "Chọn máy chủ..."
},
"terminalStatus": {
"unavailable": "Số liệu thống kê trực tiếp không khả dụng"
},
"dashboard": {
"cpu": "CPU",
"ram": "RAM"
},
"dashboardTab": {
"disk": "Ổ đĩa"
},
"terminal": {
"connected": "Đã kết nối"
},
"permissions": {
"use": {
"title": "Sử dụng số liệu máy chủ",
"description": "Xem số liệu thống kê của máy chủ và sử dụng trình quản lý máy chủ (dịch vụ, gói phần mềm, tường lửa, v.v.) trên các máy chủ mà bạn có thể truy cập."
}
},
"settings": {
"admin": {
"metricsInterval": {
"label": "Khoảng thời gian đo (giây)",
"description": "Tần suất lấy mẫu của một máy chủ đang được xem, trừ khi máy chủ đó tự thiết lập khoảng thời gian lấy mẫu riêng."
},
"historyRetentionDays": {
"label": "Thời gian lưu trữ lịch sử (ngày)",
"description": "Thời gian lưu giữ mẫu số liệu cho biểu đồ lịch sử là bao lâu?"
},
"enabledForNewHosts": {
"label": "Số liệu thống kê dành cho máy chủ mới",
"description": "Liệu các máy chủ mới có bắt đầu với tính năng thu thập số liệu được bật hay không."
}
},
"user": {
"temperatureUnit": {
"label": "Đơn vị nhiệt độ",
"description": "Cách hiển thị nhiệt độ trong Host Metrics.",
"celsius": "Độ C",
"fahrenheit": "Độ Fahrenheit"
}
},
"host": {
"metricsEnabled": {
"label": "Thu thập số liệu"
},
"metricsInterval": {
"label": "Khoảng thời gian đo (giây)"
},
"enabledWidgets": {
"label": "Các tiện ích đã được bật"
},
"excludedMounts": {
"label": "Các giá đỡ bị loại trừ"
},
"monitoredMounts": {
"label": "Các tuyến đường được giám sát"
}
}
},
"plugin": {
"name": "Host Metrics"
}
}