diff --git a/web/public/locales/vi/common.json b/web/public/locales/vi/common.json
index 843675f42..dea1157d9 100644
--- a/web/public/locales/vi/common.json
+++ b/web/public/locales/vi/common.json
@@ -75,7 +75,10 @@
"formattedTimestampFilename": {
"12hour": "dd-MM-yy-h-mm-ss-a",
"24hour": "dd-MM-yy-HH-mm-s"
- }
+ },
+ "inProgress": "Đang tiến hành",
+ "invalidStartTime": "Thời gian bắt đầu không hợp lệ",
+ "invalidEndTime": "Thời gian kết thúc không hợp lệ"
},
"menu": {
"systemLogs": "Nhật ký hệ thống",
@@ -122,14 +125,14 @@
"yue": "粵語 (Tiếng Quảng Đông)",
"ca": "Català (Tiếng Catalan)",
"th": "ไทย (Tiếng Thái)",
- "ptBR": "Português brasileiro (Brazilian Portuguese)",
- "sr": "Српски (Serbian)",
- "sl": "Slovenščina (Slovenian)",
- "lt": "Lietuvių (Lithuanian)",
- "bg": "Български (Bulgarian)",
- "gl": "Galego (Galician)",
- "id": "Bahasa Indonesia (Indonesian)",
- "ur": "اردو (Urdu)"
+ "ptBR": "Português brasileiro (Tiếng Bồ Đào Nha Brazil)",
+ "sr": "Српски (Tiếng Serbian)",
+ "sl": "Slovenščina (Tiếng Slovenian)",
+ "lt": "Lietuvių (Tiếng Lithuanian)",
+ "bg": "Български (Tiếng Bulgarian)",
+ "gl": "Galego (Tiếng Galician)",
+ "id": "Bahasa Indonesia (Tiếng Indonesian)",
+ "ur": "اردو (Tiếng Urdu)"
},
"system": "Hệ thống",
"systemMetrics": "Thông số hệ thống",
@@ -175,7 +178,8 @@
"explore": "Khám phá",
"export": "Xuất",
"uiPlayground": "UI Playground",
- "faceLibrary": "Thư viện khuôn mặt"
+ "faceLibrary": "Thư viện khuôn mặt",
+ "classification": "Phân loại"
},
"unit": {
"speed": {
@@ -185,10 +189,23 @@
"length": {
"meters": "mét (m)",
"feet": "feet (ft)"
+ },
+ "data": {
+ "kbps": "kB/s",
+ "mbps": "MB/s",
+ "gbps": "GB/s",
+ "kbph": "kB/giờ",
+ "mbph": "MB/giờ",
+ "gbph": "GB/giờ"
}
},
"label": {
- "back": "Quay lại"
+ "back": "Quay lại",
+ "hide": "Ẩn {{item}}",
+ "show": "Hiển thị {{item}}",
+ "ID": "ID",
+ "none": "Không có",
+ "all": "Tất cả"
},
"button": {
"apply": "Áp dụng",
@@ -225,7 +242,8 @@
"export": "Xuất",
"deleteNow": "Xóa ngay",
"next": "Tiếp theo",
- "saving": "Đang lưu…"
+ "saving": "Đang lưu…",
+ "continue": "Tiếp tục"
},
"toast": {
"copyUrlToClipboard": "Đã sao chép liên kết.",
@@ -266,5 +284,17 @@
"desc": "Trang bạn đang tìm không tồn tại"
},
"selectItem": "Chọn mục {{item}}",
- "readTheDocumentation": "Đọc tài liệu"
+ "readTheDocumentation": "Đọc tài liệu",
+ "list": {
+ "two": "{{0}} và {{1}}",
+ "many": "{{items}}, và {{last}}",
+ "separatorWithSpace": ", "
+ },
+ "field": {
+ "optional": "Không bắt buộc",
+ "internalID": "Internal ID Frigate sử dụng trong cấu hình và cơ sở dữ liệu"
+ },
+ "information": {
+ "pixels": "{{area}}px"
+ }
}
diff --git a/web/public/locales/vi/components/dialog.json b/web/public/locales/vi/components/dialog.json
index 5cef1da16..b8b2895ea 100644
--- a/web/public/locales/vi/components/dialog.json
+++ b/web/public/locales/vi/components/dialog.json
@@ -56,7 +56,8 @@
"noVaildTimeSelected": "Chưa chọn khoảng thời gian hợp lệ",
"failed": "Không thể bắt đầu xuất: {{error}}"
},
- "success": "Đã bắt đầu xuất thành công. Xem tệp trong thư mục /exports."
+ "success": "Đã bắt đầu xuất dữ liệu thành công. Xem tệp trên trang xuất dữ liệu.",
+ "view": "Xem"
},
"fromTimeline": {
"saveExport": "Lưu bản xuất",
@@ -92,7 +93,8 @@
"button": {
"deleteNow": "Xóa ngay",
"export": "Xuất",
- "markAsReviewed": "Đánh dấu là đã xem xét"
+ "markAsReviewed": "Đánh dấu là đã xem xét",
+ "markAsUnreviewed": "Đánh dấu là chưa xem xét"
}
},
"search": {
@@ -114,6 +116,7 @@
"search": {
"placeholder": "Tìm theo nhãn hoặc nhãn phụ..."
},
- "noImages": "Không tìm thấy hình thu nhỏ cho camera này"
+ "noImages": "Không tìm thấy hình thu nhỏ cho camera này",
+ "unknownLabel": "Ảnh kích hoạt đã lưu"
}
}
diff --git a/web/public/locales/vi/views/classificationModel.json b/web/public/locales/vi/views/classificationModel.json
index 1f0cf85be..5db2c5960 100644
--- a/web/public/locales/vi/views/classificationModel.json
+++ b/web/public/locales/vi/views/classificationModel.json
@@ -1,5 +1,5 @@
{
- "documentTitle": "Mô Hình Phân Loại",
+ "documentTitle": "شمار بندی کے ماڈل",
"button": {
"deleteClassificationAttempts": "Xóa Hình Ảnh Phân Loại",
"renameCategory": "Đổi Tên Lớp",
@@ -7,14 +7,53 @@
"deleteImages": "Xoá Hình Ảnh",
"trainModel": "Huấn Luyện Mô Hình",
"addClassification": "Thêm Phân Loại",
- "deleteModels": "Xoá Mô Hình"
+ "deleteModels": "Xoá Mô Hình",
+ "editModel": "Chỉnh sửa mô hình"
},
"toast": {
"success": {
"deletedCategory": "Lớp Đã Bị Xoá",
"deletedImage": "Hình ảnh đã bị xóa",
"deletedModel_other": "Đã xóa thành công {{count}} mô hình",
- "categorizedImage": "Phân Loại Hình Ảnh Thành Công"
+ "categorizedImage": "Phân Loại Hình Ảnh Thành Công",
+ "trainedModel": "Đã huấn luyện mô hình thành công.",
+ "trainingModel": "Đã bắt đầu huấn luyện mô hình thành công.",
+ "updatedModel": "Đã cập nhật cấu hình mô hình thành công",
+ "renamedCategory": "Đã đổi tên lớp thành công thành {{name}}"
+ },
+ "error": {
+ "deleteImageFailed": "Xóa không thành công: {{errorMessage}}",
+ "deleteCategoryFailed": "Xóa lớp không thành công: {{errorMessage}}",
+ "deleteModelFailed": "Xóa mô hình không thành công: {{errorMessage}}",
+ "categorizeFailed": "Phân loại hình ảnh không thành công: {{errorMessage}}",
+ "trainingFailed": "Huấn luyện mô hình thất bại. Vui lòng kiểm tra nhật ký của Frigate để biết chi tiết.",
+ "trainingFailedToStart": "Khởi động huấn luyện mô hình không thành công: {{errorMessage}}",
+ "updateModelFailed": "Cập nhật mô hình không thành công: {{errorMessage}}",
+ "renameCategoryFailed": "Không đổi tên được lớp: {{errorMessage}}"
}
+ },
+ "details": {
+ "scoreInfo": "Điểm số cho biết mức độ tự tin trung bình mà hệ thống xác định được cho tất cả các lần phát hiện đối tượng này."
+ },
+ "tooltip": {
+ "trainingInProgress": "Mô hình hiện đang được huấn luyện",
+ "noNewImages": "Không có hình ảnh mới để đào tạo. Trước tiên, hãy phân loại nhiều hình ảnh hơn trong tập dữ liệu.",
+ "noChanges": "Không có thay đổi nào đối với tập dữ liệu kể từ lần đào tạo cuối cùng.",
+ "modelNotReady": "Mô hình chưa sẵn sàng để huấn luyện"
+ },
+ "deleteCategory": {
+ "title": "Xóa lớp",
+ "desc": "Bạn có chắc chắn muốn xóa lớp {{name}} không? Điều này sẽ xóa vĩnh viễn tất cả các hình ảnh liên quan và yêu cầu đào tạo lại mô hình.",
+ "minClassesTitle": "Không thể xóa lớp",
+ "minClassesDesc": "Một mô hình phân loại phải có ít nhất 2 lớp. Thêm một lớp khác trước khi xóa lớp này."
+ },
+ "deleteModel": {
+ "title": "Xóa mô hình phân loại",
+ "single": "Bạn có chắc chắn muốn xóa {{name}} không? Thao tác này sẽ xóa vĩnh viễn tất cả dữ liệu liên quan bao gồm hình ảnh và dữ liệu đào tạo. Không thể hoàn tác hành động này.",
+ "desc_other": "Bạn có chắc chắn muốn xóa mô hình {{count}} không? Thao tác này sẽ xóa vĩnh viễn tất cả dữ liệu liên quan bao gồm hình ảnh và dữ liệu đào tạo. Không thể hoàn tác hành động này."
+ },
+ "edit": {
+ "title": "Chỉnh sửa mô hình phân loại",
+ "descriptionState": "Chỉnh sửa các lớp cho mô hình phân loại trạng thái này. Những thay đổi sẽ yêu cầu đào tạo lại mô hình."
}
}
diff --git a/web/public/locales/vi/views/events.json b/web/public/locales/vi/views/events.json
index c85f6cfdc..94b2bc710 100644
--- a/web/public/locales/vi/views/events.json
+++ b/web/public/locales/vi/views/events.json
@@ -37,5 +37,26 @@
"markTheseItemsAsReviewed": "Đánh dấu các mục này là đã xem xét",
"suspiciousActivity": "Hoạt động đáng ngờ",
"threateningActivity": "Hoạt động đe dọa",
- "zoomIn": "Phóng To"
+ "zoomIn": "Phóng To",
+ "zoomOut": "Thu nhỏ",
+ "detail": {
+ "label": "Chi tiết",
+ "noDataFound": "Không có dữ liệu chi tiết để xem xét",
+ "aria": "Chuyển đổi chế độ xem chi tiết",
+ "trackedObject_one": "{{count}} đối tượng",
+ "trackedObject_other": "{{count}} đối tượng",
+ "noObjectDetailData": "Không có dữ liệu chi tiết đối tượng nào khả dụng.",
+ "settings": "Cài đặt chế độ xem chi tiết",
+ "alwaysExpandActive": {
+ "title": "Luôn mở rộng mục đang hoạt động",
+ "desc": "Luôn mở rộng chi tiết đối tượng của mục đánh giá đang hoạt động khi có sẵn."
+ }
+ },
+ "objectTrack": {
+ "trackedPoint": "Điểm theo dõi",
+ "clickToSeek": "Nhấn để tua đến thời điểm này"
+ },
+ "normalActivity": "Bình thường",
+ "needsReview": "Cần xem xét",
+ "securityConcern": "Mối lo ngại về an ninh"
}
diff --git a/web/public/locales/vi/views/explore.json b/web/public/locales/vi/views/explore.json
index 82b3b7ad0..7110009ce 100644
--- a/web/public/locales/vi/views/explore.json
+++ b/web/public/locales/vi/views/explore.json
@@ -67,7 +67,7 @@
"regenerate": "Một mô tả mới đã được yêu cầu từ {{provider}}. Tùy thuộc vào tốc độ của nhà cung cấp của bạn, mô tả mới có thể mất một chút thời gian để tạo lại.",
"updatedLPR": "Cập nhật biển số xe thành công.",
"updatedSublabel": "Cập nhật nhãn phụ thành công.",
- "audioTranscription": "Đã yêu cầu phiên âm thành công."
+ "audioTranscription": "Đã yêu cầu chuyển đổi âm thanh thành văn bản thành công. Tùy vào tốc độ của máy chủ Frigate, quá trình chuyển đổi có thể mất một khoảng thời gian để hoàn tất."
}
},
"tips": {
@@ -152,11 +152,25 @@
},
"addTrigger": {
"label": "Thêm sự kiện kích hoạt",
- "aria": "Thêm sự kiện kích hoạt cho đối tượng này."
+ "aria": "Thêm trình kích hoạt cho đối tượng được theo dõi này"
},
"audioTranscription": {
"label": "Phiên âm",
"aria": "Yêu cầu phiên âm"
+ },
+ "downloadCleanSnapshot": {
+ "label": "Tải xuống ảnh chụp nhanh",
+ "aria": "Tải xuống ảnh chụp nhanh"
+ },
+ "viewTrackingDetails": {
+ "label": "Xem chi tiết theo dõi",
+ "aria": "Xem chi tiết theo dõi"
+ },
+ "showObjectDetails": {
+ "label": "Hiển thị đường dẫn đối tượng"
+ },
+ "hideObjectDetails": {
+ "label": "Ẩn đường dẫn đối tượng"
}
},
"exploreIsUnavailable": {
@@ -189,7 +203,7 @@
},
"dialog": {
"confirmDelete": {
- "desc": "Việc xóa đối tượng được theo dõi này sẽ xóa ảnh chụp nhanh, mọi dữ liệu nhúng đã lưu và mọi mục nhập vòng đời đối tượng liên quan. Đoạn ghi hình đã ghi của đối tượng được theo dõi này trong chế độ xem Lịch sử sẽ KHÔNG bị xóa.
Bạn có chắc chắn muốn tiếp tục không?",
+ "desc": "Việc xóa đối tượng được theo dõi này sẽ xóa ảnh chụp nhanh, mọi phần nhúng đã lưu và mọi mục nhập chi tiết theo dõi được liên kết. Đoạn phim đã ghi của đối tượng được theo dõi này trong chế độ xem Lịch sử sẽ KHÔNG bị xóa.
Bạn có chắc chắn muốn tiếp tục không?",
"title": "Xác nhận Xóa"
}
},
@@ -201,7 +215,9 @@
"error": "Không thể xóa đối tượng được theo dõi: {{errorMessage}}"
}
},
- "tooltip": "Khớp {{type}} ở mức {{confidence}}%"
+ "tooltip": "Khớp {{type}} ở mức {{confidence}}%",
+ "previousTrackedObject": "Đối tượng được theo dõi trước đó",
+ "nextTrackedObject": "Đối tượng được theo dõi tiếp theo"
},
"exploreMore": "Khám phá thêm các đối tượng {{label}}",
"trackedObjectDetails": "Chi tiết Đối tượng được theo dõi",
@@ -209,7 +225,9 @@
"details": "chi tiết",
"snapshot": "ảnh chụp nhanh",
"video": "video",
- "object_lifecycle": "vòng đời đối tượng"
+ "object_lifecycle": "vòng đời đối tượng",
+ "thumbnail": "Ảnh thu nhỏ",
+ "tracking_details": "chi tiết theo dõi"
},
"fetchingTrackedObjectsFailed": "Lỗi khi tìm nạp các đối tượng được theo dõi: {{errorMessage}}",
"documentTitle": "Khám phá - Frigate",
@@ -220,5 +238,54 @@
},
"concerns": {
"label": "Mối lo ngại"
+ },
+ "trackingDetails": {
+ "title": "Chi tiết theo dõi",
+ "noImageFound": "Không tìm thấy hình ảnh cho mốc thời gian này.",
+ "createObjectMask": "Tạo mặt nạ đối tượng",
+ "adjustAnnotationSettings": "Điều chỉnh cài đặt chú thích",
+ "scrollViewTips": "Nhấn để xem những khoảnh khắc quan trọng trong vòng đời của đối tượng này.",
+ "autoTrackingTips": "Vị trí khung bao sẽ không chính xác đối với các camera tự động theo dõi (autotracking).",
+ "count": "{{first}} của {{second}}",
+ "trackedPoint": "Điểm theo dõi",
+ "lifecycleItemDesc": {
+ "visible": "Đã phát hiện được {{label}}",
+ "entered_zone": "{{label}} đã vào {{zones}}",
+ "active": "{{label}} đã hoạt động",
+ "stationary": "{{label}} đã đứng yên",
+ "attribute": {
+ "faceOrLicense_plate": "Đã phát hiện {{attribute}} đối với {{label}}",
+ "other": "{{label}} được nhận diện là {{attribute}}"
+ },
+ "gone": "{{label}} đã rời đi",
+ "heard": "Đã nghe thấy {{label}}",
+ "external": "{{label}} đã được nhận diện",
+ "header": {
+ "zones": "Vùng",
+ "ratio": "Tỷ lệ",
+ "area": "Khu vực",
+ "score": "Điểm"
+ }
+ },
+ "annotationSettings": {
+ "title": "Cài đặt chú thích",
+ "showAllZones": {
+ "title": "Hiện tất cả các vùng",
+ "desc": "Luôn hiển thị các vùng trên khung hình khi có đối tượng đi vào vùng đó."
+ },
+ "offset": {
+ "label": "Độ lệch chú thích",
+ "desc": "Dữ liệu này lấy từ luồng phát hiện (detect feed) của camera bạn, nhưng được hiển thị chồng lên hình ảnh từ luồng ghi hình (record feed). Hai luồng này thường không đồng bộ hoàn hảo với nhau. Do đó, khung bao (bounding box) và đoạn video có thể không khớp chính xác. Bạn có thể sử dụng cài đặt này để điều chỉnh thời gian hiển thị chú thích (annotation) lùi hoặc tiến để đồng bộ tốt hơn với video đã ghi.",
+ "millisecondsToOffset": "Số mili giây để điều chỉnh thời gian hiển thị chú thích phát hiện. Mặc định: 0",
+ "tips": "Giảm giá trị nếu quá trình phát lại video ở phía trước các hộp và điểm đường dẫn, đồng thời tăng giá trị nếu quá trình phát lại video ở phía sau chúng. Giá trị này có thể âm.",
+ "toast": {
+ "success": "Độ lệch chú thích cho {{camera}} đã được lưu vào tệp cấu hình."
+ }
+ }
+ },
+ "carousel": {
+ "previous": "Trang trình bày trước",
+ "next": "Trang trình bày tiếp theo"
+ }
}
}
diff --git a/web/public/locales/vi/views/exports.json b/web/public/locales/vi/views/exports.json
index 6ae992551..95b3b87c6 100644
--- a/web/public/locales/vi/views/exports.json
+++ b/web/public/locales/vi/views/exports.json
@@ -17,6 +17,7 @@
"tooltip": {
"shareExport": "Chia sẻ bản xuất",
"downloadVideo": "Tải video",
- "editName": "Chỉnh sửa tên"
+ "editName": "Chỉnh sửa tên",
+ "deleteExport": "Xóa bản xuất"
}
}
diff --git a/web/public/locales/vi/views/faceLibrary.json b/web/public/locales/vi/views/faceLibrary.json
index e27adcf65..cef8b9da7 100644
--- a/web/public/locales/vi/views/faceLibrary.json
+++ b/web/public/locales/vi/views/faceLibrary.json
@@ -1,7 +1,7 @@
{
"selectItem": "Chọn mục {{item}}",
"description": {
- "addFace": "Hướng dẫn thêm bộ sưu tập mới vào Thư viện khuôn mặt.",
+ "addFace": "Thêm một bộ sưu tập mới vào Thư viện Khuôn Mặt bằng cách tải lên hình ảnh đầu tiên của bạn.",
"invalidName": "Tên không hợp lệ. Tên chỉ được phép chứa chữ cái, số, khoảng trắng, dấu nháy đơn, dấu gạch dưới và dấu gạch ngang.",
"placeholder": "Nhập tên cho bộ sưu tập này"
},
@@ -38,7 +38,7 @@
"success": {
"uploadedImage": "Tải lên hình ảnh thành công.",
"trainedFace": "Huấn luyện khuôn mặt thành công.",
- "updatedFaceScore": "Cập nhật điểm khuôn mặt thành công.",
+ "updatedFaceScore": "Đã cập nhật thành công điểm khuôn mặt thành {{name}} ({{score}}).",
"addFaceLibrary": "{{name}} đã được thêm thành công vào Thư viện Khuôn mặt!",
"deletedFace_other": "Đã xóa thành công {{count}} khuôn mặt.",
"deletedName_other": "{{count}} khuôn mặt đã được xóa thành công.",
@@ -76,15 +76,15 @@
"trainFace": "Huấn luyện khuôn mặt",
"nofaces": "Không có khuôn mặt nào",
"createFaceLibrary": {
- "nextSteps": "Để xây dựng một nền tảng vững chắc: