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
This commit is contained in:
1 parent
fea6d8db04
commit
b0d0e3a5f3
301 files changed
+28002
-2705
No files matched your search
@@ -0,0 +1,186 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user