diff --git a/web/public/locales/zh-CN/common.json b/web/public/locales/zh-CN/common.json
index 55632e768..d4e3aba21 100644
--- a/web/public/locales/zh-CN/common.json
+++ b/web/public/locales/zh-CN/common.json
@@ -283,7 +283,8 @@
},
"list": {
"two": "{{0}} 和 {{1}}",
- "many": "{{items}} 以及 {{last}}"
+ "many": "{{items}} 以及 {{last}}",
+ "separatorWithSpace": ", "
},
"field": {
"optional": "可选",
diff --git a/web/public/locales/zh-CN/views/events.json b/web/public/locales/zh-CN/views/events.json
index a598e68ba..8269da7d7 100644
--- a/web/public/locales/zh-CN/views/events.json
+++ b/web/public/locales/zh-CN/views/events.json
@@ -44,10 +44,17 @@
"trackedObject_one": "目标或物体",
"trackedObject_other": "目标或物体",
"noObjectDetailData": "没有目标详细信息。",
- "label": "详细信息"
+ "label": "详细信息",
+ "settings": "详细视图设置",
+ "alwaysExpandActive": {
+ "title": "始终展开当前项",
+ "desc": "在可用情况下,将始终展开当前核查项的对象详细信息。"
+ }
},
"objectTrack": {
"trackedPoint": "追踪点",
"clickToSeek": "点击从该时间进行寻找"
- }
+ },
+ "zoomIn": "放大",
+ "zoomOut": "缩小"
}
diff --git a/web/public/locales/zh-CN/views/explore.json b/web/public/locales/zh-CN/views/explore.json
index fac329f39..45dcd46e8 100644
--- a/web/public/locales/zh-CN/views/explore.json
+++ b/web/public/locales/zh-CN/views/explore.json
@@ -34,7 +34,8 @@
"details": "详情",
"snapshot": "快照",
"video": "视频",
- "object_lifecycle": "目标全周期"
+ "object_lifecycle": "目标全周期",
+ "thumbnail": "缩略图"
},
"objectLifecycle": {
"title": "目标全周期",
@@ -236,7 +237,7 @@
"noImageFound": "在该时间内没找到图片。",
"createObjectMask": "创建目标遮罩",
"adjustAnnotationSettings": "调整注释设置",
- "scrollViewTips": "滚动以查看该目标全周期中的关键时刻。",
+ "scrollViewTips": "点击以查看该目标全周期中的关键时刻。",
"autoTrackingTips": "自动追踪摄像头的边框定位可能不准确。",
"count": "{{first}} / {{second}}",
"trackedPoint": "追踪点",
@@ -266,7 +267,7 @@
},
"offset": {
"label": "标记偏移量",
- "desc": "此数据来自摄像头的检测视频流,但叠加在录制视频流的图像上。由于两个视频流通常不会完全同步,因此边框与画面可能无法完全对齐。不过,可以使用 annotation_offset 字段进行调整。",
+ "desc": "此数据来自摄像头的检测视频流,但叠加在录制视频流的画面上。两个视频流可能不会完全同步,因此边框与画面可能无法完全对齐。可以使用此设置将标记在时间轴上向前或向后偏移,以更好地与录制画面对齐。",
"millisecondsToOffset": "用于偏移检测标记的毫秒数。 默认值:0",
"tips": "提示:假设有一段人从左向右走的事件录制,如果事件时间轴中的边框始终在人的左侧(即后方),则应该减小偏移值;反之,如果边框始终领先于人物,则应增大偏移值。",
"toast": {
diff --git a/web/public/locales/zh-CN/views/settings.json b/web/public/locales/zh-CN/views/settings.json
index 255587bfe..a12350c14 100644
--- a/web/public/locales/zh-CN/views/settings.json
+++ b/web/public/locales/zh-CN/views/settings.json
@@ -51,6 +51,10 @@
"playAlertVideos": {
"label": "播放警报视频",
"desc": "默认情况下,实时监控页面上的最新警报会以一小段循环视频的形式进行播放。禁用此选项将仅显示浏览器本地缓存的静态图片。"
+ },
+ "displayCameraNames": {
+ "label": "始终显示摄像头名称",
+ "desc": "在有多摄像头情况下的实时监控页面,将始终显示摄像头名称标签。"
}
},
"storedLayouts": {
@@ -761,7 +765,9 @@
},
"actions": {
"alert": "标记为警报",
- "notification": "发送通知"
+ "notification": "发送通知",
+ "sub_label": "添加子标签",
+ "attribute": "添加属性"
},
"dialog": {
"createTrigger": {
@@ -816,7 +822,7 @@
},
"actions": {
"title": "动作",
- "desc": "默认情况下,Frigate 会为所有触发器发送 MQTT 消息。请选择此触发器触发时需要执行的附加操作。",
+ "desc": "默认情况下,Frigate 会为所有触发器发送 MQTT 消息。子标签会将触发器名称添加到对象标签中。属性是可搜索的元数据,独立存储在追踪对象的元数据中。",
"error": {
"min": "必须至少选择一项动作。"
}
@@ -881,7 +887,7 @@
"createRole": "权限组 {{role}} 创建成功",
"updateCameras": "已更新摄像头至 {{role}} 权限组",
"deleteRole": "已删除 {{role}} 权限组",
- "userRolesUpdated": "已将分配到此权限组的 {{count}} 位用户更新为 “成员”,该权限组可访问所有摄像头。"
+ "userRolesUpdated_other": "已将分配到此权限组的 {{count}} 位用户更新为 “成员”,该权限组可访问所有摄像头。"
},
"error": {
"createRoleFailed": "创建权限组失败:{{errorMessage}}",
@@ -1066,7 +1072,9 @@
},
"resolutionHigh": "使用 {{resolution}} 分辨率可能会导致占用更多的系统资源。",
"resolutionLow": "使用 {{resolution}} 分辨率可能过低,难以检测较小的物体。"
- }
+ },
+ "ffmpegModule": "使用视频流兼容模式",
+ "ffmpegModuleDescription": "如果多次尝试后视频流仍无法加载,可以尝试启用此功能。启用后,Frigate 将使用集成 go2rtc 的 ffmpeg 模块,这可能会提高与某些摄像头视频流的兼容性。"
}
},
"cameraManagement": {
diff --git a/web/public/locales/zh-Hans/views/classificationModel.json b/web/public/locales/zh-Hans/views/classificationModel.json
index 1714168fc..6d59c1431 100644
--- a/web/public/locales/zh-Hans/views/classificationModel.json
+++ b/web/public/locales/zh-Hans/views/classificationModel.json
@@ -5,7 +5,10 @@
"renameCategory": "重命名类别",
"deleteCategory": "删除类别",
"deleteImages": "删除图片",
- "trainModel": "训练模型"
+ "trainModel": "训练模型",
+ "addClassification": "添加分类",
+ "deleteModels": "删除模型",
+ "editModel": "编辑模型"
},
"toast": {
"success": {
@@ -13,13 +16,17 @@
"deletedImage": "删除图片",
"categorizedImage": "成功分类图片",
"trainedModel": "训练模型成功。",
- "trainingModel": "已开始训练模型。"
+ "trainingModel": "已开始训练模型。",
+ "deletedModel_other": "已删除 {{count}} 个模型",
+ "updatedModel": "已更新模型配置"
},
"error": {
"deleteImageFailed": "删除失败:{{errorMessage}}",
"deleteCategoryFailed": "删除类别失败:{{errorMessage}}",
"categorizeFailed": "图片分类失败:{{errorMessage}}",
- "trainingFailed": "开始训练模型失败:{{errorMessage}}"
+ "trainingFailed": "开始训练模型失败:{{errorMessage}}",
+ "deleteModelFailed": "删除模型失败:{{errorMessage}}",
+ "updateModelFailed": "更新模型失败:{{errorMessage}}"
}
},
"deleteCategory": {
@@ -43,7 +50,8 @@
},
"train": {
"title": "最近分类记录",
- "aria": "选择最近分类记录"
+ "aria": "选择最近分类记录",
+ "titleShort": "最近"
},
"categories": "类别",
"createCategory": {
@@ -98,7 +106,8 @@
"stateRequiresTwoClasses": "状态模型至少需要两个类别",
"objectLabelRequired": "请选择一个目标标签",
"objectTypeRequired": "请选择一个目标标签"
- }
+ },
+ "states": "状态"
},
"step2": {
"description": "选择摄像头,并为摄像头定义要监控的区域。模型将对这些区域的状态进行分类。",
@@ -131,5 +140,23 @@
},
"generateSuccess": "样本图片生成成功"
}
+ },
+ "deleteModel": {
+ "title": "删除分类模型",
+ "single": "你确定要删除 {{name}} 吗?此操作将永久删除所有相关数据,包括图片和训练数据,且无法撤销。",
+ "desc": "你确定要删除 {{count}} 个模型吗?此操作将永久删除所有相关数据,包括图片和训练数据,且无法撤销。"
+ },
+ "menu": {
+ "objects": "目标",
+ "states": "状态"
+ },
+ "details": {
+ "scoreInfo": "得分表示该目标所有检测结果的平均分类置信度。"
+ },
+ "edit": {
+ "title": "编辑分类模型",
+ "descriptionState": "编辑此状态分类模型的类别;更改后需要重新训练模型。",
+ "descriptionObject": "编辑此目标分类模型的目标类型和分类类型。",
+ "stateClassesInfo": "注意:更改状态类别后需使用更新后的类别重新训练模型。"
}
}