Files
opsxshell/src/i18n/locales/vi/sftp.json
T
Logan.Li b0d0e3a5f3 feat(i18n): add multi-language support (ja/ko/vi/ru/zh-TW) with system auto-detection
- Extend AppLanguage to 7 locales: zh-CN, zh-TW, en, ja, ko, vi, ru
- Auto-detect system language via navigator.languages; fallback to English
- Add BCP47 locale mapping for date formatting and sorting
- Create 50 translation JSON files (5 languages × 10 namespaces, 1137 keys each)
- Update language selector with native language names
- Extend locale key parity test to cover all 7 languages (70 assertions)
- Add VNC/RDP desktop, serial terminal, AI agent, port forwarding, and SFTP features
- Add credential encryption, host metrics, session backup crypto, and zmodem bridge
- Update Rust backend: desktop services, host metrics, SSH/SFTP enhancements
2026-08-12 00:07:48 +08:00

187 lines
6.5 KiB
JSON

{
"panel": {
"local": "Cục bộ",
"remote": "Từ xa",
"notConnectedTitle": "Chưa kết nối tới máy chủ từ xa",
"notConnectedDesc": "Kết nối một phiên SSH trước để dùng SFTP",
"ariaLabel": "Bảng tệp {{title}}"
},
"connection": {
"selectServer": "Chọn máy chủ",
"noSessions": "Chưa có phiên đã lưu",
"createSessionHint": "Tạo phiên trong thanh bên trước tiên",
"reconnect": "Kết nối lại",
"notConnected": "Chưa kết nối",
"connecting": "Đang kết nối..."
},
"errors": {
"notConnected": "SFTP chưa được kết nối",
"noUploadFiles": "Không có tệp để tải lên",
"localStatFailed": "Không thể đọc thông tin tệp cục bộ",
"loadRemoteFailed": "Không thể tải thư mục từ xa: {{message}}",
"noFolderDownload": "Không thể tải xuống thư mục",
"selectDownloadFiles": "Chọn tệp để tải xuống trước",
"uploadFailed": "Tải lên thất bại",
"downloadFailed": "Tải xuống thất bại",
"fileError": "{{fileName}}: {{message}}"
},
"toolbar": {
"upload": "Tải lên",
"uploadAria": "Tải lên",
"download": "Tải xuống",
"downloadAria": "Tải xuống",
"downloadNeedSelection": "Chọn tệp từ xa trước",
"downloadHint": "Tải xuống các tệp từ xa đã chọn",
"refresh": "Làm mới",
"refreshAria": "Làm mới",
"newFolder": "Thư mục mới",
"newFolderAria": "Thư mục mới"
},
"sort": {
"name": "Tên",
"modified": "Đã sửa đổi",
"size": "Kích thước",
"type": "Loại"
},
"nav": {
"home": "Trang chính",
"back": "Lùi",
"forward": "Tiến",
"up": "Lên",
"searchPlaceholder": "Tìm tên tệp",
"clearSearch": "Xóa tìm kiếm",
"clearSearchAria": "Xóa tìm kiếm",
"showHidden": "Hiển thị tệp ẩn",
"hideHidden": "Ẩn tệp chấm (.xxx)",
"showHiddenAria": "Hiển thị tệp ẩn",
"hideHiddenAria": "Ẩn tệp chấm",
"searchAria": "Tìm trong {{title}}"
},
"status": {
"loading": "Đang tải...",
"selected": "Đã chọn {{count}}",
"filtered": "Hiển thị {{shown}} / {{total}}",
"hiddenCount": "{{total}} mục ({{hidden}} ẩn)",
"total": "{{count}} mục",
"filterHint": "Lọc: {{query}}"
},
"empty": {
"dirTitle": "Thư mục rỗng",
"dirDescLocal": "Không có tệp trong thư mục này",
"dirDescRemote": "Thử đi lên hoặc làm mới",
"goUp": "Đi lên",
"hiddenOnlyTitle": "Chỉ có tệp ẩn",
"hiddenOnlyDesc": "Nhấn vào biểu tượng con mắt trong tiêu đề để hiển thị tệp chấm",
"showHiddenAction": "Hiển thị tệp ẩn",
"noMatchTitle": "Không có tệp phù hợp",
"noMatchDesc": "Không có tệp khớp với \"{{query}}\""
},
"fileType": {
"folder": "Thư mục",
"symlink": "Liên kết",
"symlinkLong": "Liên kết tượng trưng",
"file": "Tệp",
"text": "Văn bản",
"log": "Nhật ký",
"database": "Cơ sở dữ liệu",
"imageIso": "Ảnh đĩa",
"executable": "Tệp thực thi",
"library": "Thư viện"
},
"relativeDate": {
"today": "Hôm nay",
"yesterday": "Hôm qua",
"daysAgo": "{{count}} ngày trước"
},
"contextMenu": {
"open": "Mở",
"upload": "Tải lên",
"download": "Tải xuống",
"edit": "Sửa",
"rename": "Đổi tên",
"copyPath": "Sao chép đường dẫn",
"properties": "Thuộc tính",
"permissions": "Quyền",
"delete": "Xóa"
},
"dialog": {
"renameTitle": "Đổi tên",
"renameMessage": "Nhập tên mới:",
"renamePlaceholder": "Tên mới",
"newFolderTitle": "Thư mục mới",
"newFolderMessage": "Nhập tên thư mục:",
"newFolderPlaceholder": "Tên thư mục",
"propertiesTitle": "Thuộc tính tệp",
"propertiesClose": "Đóng",
"chmodTitle": "Sửa quyền",
"chmodApply": "Áp dụng",
"pickUploadTitle": "Chọn tệp hoặc thư mục để tải lên",
"pickUploadRzTitle": "Chọn tệp để tải lên (rz)"
},
"properties": {
"name": "Tên",
"path": "Đường dẫn",
"size": "Kích thước",
"permissions": "Quyền",
"modified": "Đã sửa đổi",
"accessed": "Đã truy cập",
"symlink": "Liên kết tượng trưng",
"loadingDetails": "Đang tải chi tiết..."
},
"chmod": {
"read": "Đọc",
"write": "Ghi",
"execute": "Thực thi",
"owner": "Chủ sở hữu",
"group": "Nhóm",
"other": "Khác",
"current": "Chế độ hiện tại:",
"readR": "Đọc (r)",
"writeW": "Ghi (w)",
"executeX": "Thực thi (x)"
},
"transfer": {
"queue": "Hàng đợi truyền",
"active": "{{count}} đang chạy",
"completed": "{{count}} hoàn tất",
"taskCount": "{{count}} tác vụ",
"empty": "Không có tác vụ truyền",
"cancel": "Hủy",
"remove": "Xóa",
"statusWaiting": "Đang chờ",
"statusDone": "Xong",
"statusFailed": "Thất bại",
"statusCancelled": "Đã hủy",
"dropUpload": "Tải lên {{path}}",
"dropDownload": "Tải xuống vào {{path}}"
},
"editor": {
"readFailed": "Đọc thất bại",
"saveFailed": "Lưu thất bại",
"unsavedClose": "Có thay đổi chưa lưu. Vẫn đóng?",
"saving": "Đang lưu...",
"save": "Lưu",
"saved": "Đã lưu tệp",
"loadingEditor": "Đang tải trình soạn thảo...",
"footer": "UTF-8 · Monaco · ⌘/Ctrl+S lưu · tối đa ~2MB",
"charCount": "{{count}} ký tự",
"unsavedMark": " · chưa lưu",
"savedMark": " · đã lưu"
},
"toast": {
"renamed": "Đã đổi tên thành {{name}}",
"renameFailed": "Đổi tên thất bại",
"pathCopied": "Đường dẫn đã được sao chép vào clipboard",
"pathCopyFailed": "Không thể sao chép đường dẫn",
"chmodUpdated": "Đã cập nhật quyền thành {{mode}}",
"chmodFailed": "Không thể cập nhật quyền",
"uploadPartial": "{{action}} đã hoàn tất {{completed}}, thất bại {{failed}}: {{detail}}",
"uploadSuccess": "{{action}} hoàn tất cho {{completed}} mục",
"uploadAction": "Tải lên",
"downloadAction": "Tải xuống",
"noFolderUpload": "Tải lên thư mục thất bại",
"noDragPath": "Đường dẫn kéo-thả không khả dụng; hãy dùng Tải lên",
"noFolderRecursive": "Truyền thư mục đệ quy thất bại; thử lại hoặc dùng Tải lên"
}
}