diff --git a/web/public/locales/zh-CN/audio.json b/web/public/locales/zh-CN/audio.json index 369482406..848418f84 100644 --- a/web/public/locales/zh-CN/audio.json +++ b/web/public/locales/zh-CN/audio.json @@ -102,7 +102,7 @@ "flapping_wings": "翅膀拍打", "dogs": "狗群", "rats": "老鼠", - "mouse": "老鼠", + "mouse": "鼠标", "patter": "啪嗒声", "insect": "昆虫", "cricket": "蟋蟀", diff --git a/web/public/locales/zh-CN/components/camera.json b/web/public/locales/zh-CN/components/camera.json index cb8a9b802..1ac6a63d5 100644 --- a/web/public/locales/zh-CN/components/camera.json +++ b/web/public/locales/zh-CN/components/camera.json @@ -81,7 +81,7 @@ "timestamp": "时间戳", "zones": "区域", "mask": "遮罩", - "motion": "运动", + "motion": "画面变动", "regions": "区域" } } diff --git a/web/public/locales/zh-CN/components/dialog.json b/web/public/locales/zh-CN/components/dialog.json index db2af6069..3d9da612a 100644 --- a/web/public/locales/zh-CN/components/dialog.json +++ b/web/public/locales/zh-CN/components/dialog.json @@ -64,7 +64,8 @@ "failed": "导出失败:{{error}}", "endTimeMustAfterStartTime": "结束时间必须在开始时间之后", "noVaildTimeSelected": "未选择有效的时间范围" - } + }, + "view": "查看" }, "fromTimeline": { "saveExport": "保存导出", diff --git a/web/public/locales/zh-CN/components/filter.json b/web/public/locales/zh-CN/components/filter.json index 52341c68f..8911c6acb 100644 --- a/web/public/locales/zh-CN/components/filter.json +++ b/web/public/locales/zh-CN/components/filter.json @@ -65,7 +65,7 @@ "showReviewed": "显示已核查的项目" }, "motion": { - "showMotionOnly": "仅显示运动" + "showMotionOnly": "仅显示画面变动" }, "explore": { "settings": { diff --git a/web/public/locales/zh-CN/objects.json b/web/public/locales/zh-CN/objects.json index 161821a9d..193f87179 100644 --- a/web/public/locales/zh-CN/objects.json +++ b/web/public/locales/zh-CN/objects.json @@ -71,7 +71,7 @@ "door": "门", "tv": "电视", "laptop": "笔记本电脑", - "mouse": "老鼠", + "mouse": "鼠标", "remote": "遥控器", "keyboard": "键盘", "cell_phone": "手机", diff --git a/web/public/locales/zh-CN/views/classificationModel.json b/web/public/locales/zh-CN/views/classificationModel.json index 5cf463e5c..a3fa01a60 100644 --- a/web/public/locales/zh-CN/views/classificationModel.json +++ b/web/public/locales/zh-CN/views/classificationModel.json @@ -1,5 +1,5 @@ { - "documentTitle": "分类模型", + "documentTitle": "分类模型 - Frigate", "button": { "deleteClassificationAttempts": "删除分类图片", "renameCategory": "重命名类别", @@ -56,7 +56,7 @@ "train": { "title": "最近分类记录", "aria": "选择最近分类记录", - "titleShort": "最近" + "titleShort": "近期" }, "categories": "类别", "createCategory": { @@ -94,7 +94,7 @@ "objectLabelPlaceholder": "请选择目标类型……", "classificationType": "分类方式", "classificationTypeTip": "了解分类方式", - "classificationTypeDesc": "子标签会为目标标签添加附加文本(例如:“人员:美团”)。属性是可搜索的元数据,独立存储在对象的元信息中。", + "classificationTypeDesc": "子标签会为目标标签添加附加文本(例如:“人员:美团”)。属性是可搜索的元数据,独立存储在目标的元信息中。", "classificationSubLabel": "子标签", "classificationAttribute": "属性", "classes": "类别", @@ -144,7 +144,12 @@ "classifyFailed": "图片分类失败:{{error}}" }, "generateSuccess": "样本图片生成成功", - "allImagesRequired_other": "请对所有图片进行分类。还有 {{count}} 张图片需要分类。" + "allImagesRequired_other": "请对所有图片进行分类。还有 {{count}} 张图片需要分类。", + "modelCreated": "模型创建成功。请在“最近分类”页面为缺失的状态添加图片,然后训练模型。", + "missingStatesWarning": { + "title": "缺失状态示例", + "description": "建议为所有状态都选择示例图片以获得最佳效果。你也可以跳过当前为分类状态选择图片,但需要所有状态都有对应的图片,模型才能够进行训练。跳过后你可通过“最近分类”页面为缺失的状态分类添加图片,然后再训练模型。" + } } }, "deleteModel": { @@ -170,5 +175,6 @@ "noNewImages": "没有新的图片可用于训练。请先对数据集中的更多图片进行分类。", "noChanges": "自上次训练以来,数据集未作任何更改。", "modelNotReady": "模型尚未准备好进行训练" - } + }, + "none": "无标签" } diff --git a/web/public/locales/zh-CN/views/events.json b/web/public/locales/zh-CN/views/events.json index cc6b62561..ac795e2a9 100644 --- a/web/public/locales/zh-CN/views/events.json +++ b/web/public/locales/zh-CN/views/events.json @@ -2,14 +2,14 @@ "alerts": "警报", "detections": "检测", "motion": { - "label": "运动", - "only": "仅运动画面" + "label": "画面变动", + "only": "仅变动画面" }, "allCameras": "所有摄像头", "empty": { "alert": "还没有“警报”类核查项", "detection": "还没有“检测”类核查项", - "motion": "还没有运动类数据" + "motion": "还没有画面变动类数据" }, "timeline": "时间线", "timeline.aria": "选择时间线", @@ -48,7 +48,7 @@ "settings": "详细视图设置", "alwaysExpandActive": { "title": "始终展开当前项", - "desc": "在可用情况下,将始终展开当前核查项的对象详细信息。" + "desc": "在可用情况下,将始终展开当前核查项的目标详细信息。" } }, "objectTrack": { @@ -56,5 +56,9 @@ "clickToSeek": "点击从该时间进行寻找" }, "zoomIn": "放大", - "zoomOut": "缩小" + "zoomOut": "缩小", + "normalActivity": "正常", + "needsReview": "需要核查", + "securityConcern": "安全隐患", + "select_all": "所有" } diff --git a/web/public/locales/zh-CN/views/explore.json b/web/public/locales/zh-CN/views/explore.json index 2ca7558c3..e94442eaf 100644 --- a/web/public/locales/zh-CN/views/explore.json +++ b/web/public/locales/zh-CN/views/explore.json @@ -97,14 +97,14 @@ }, "tips": { "mismatch_other": "检测到 {{count}} 个不可用的目标,并已包含在此核查项中。这些目标可能未达到警报或检测标准,或者已被清理/删除。", - "hasMissingObjects": "如果希望 Frigate 保存 {{objects}} 标签的追踪目标,请调整您的配置。" + "hasMissingObjects": "如果希望 Frigate 保存 {{objects}} 标签的追踪目标,请调整您的配置" }, "toast": { "success": { "regenerate": "已向 {{provider}} 请求新的描述。根据提供商的速度,生成新描述可能需要一些时间。", "updatedSublabel": "成功更新子标签。", "updatedLPR": "成功更新车牌。", - "audioTranscription": "成功请求音频转录。" + "audioTranscription": "成功请求音频转录。根据你运行 Frigate 的服务器速度,转录可能需要一些时间才能完成。" }, "error": { "regenerate": "调用 {{provider}} 生成新描述失败:{{errorMessage}}", @@ -206,12 +206,16 @@ "viewTrackingDetails": { "label": "查看追踪详情", "aria": "显示追踪详情" + }, + "downloadCleanSnapshot": { + "label": "下载干净快照", + "aria": "下载干净快照" } }, "dialog": { "confirmDelete": { "title": "确认删除", - "desc": "删除此追踪目标后,将移除快照、所有已保存的嵌入向量数据以及任何相关的目标追踪详情条目,但在 历史 页面中追踪对象的录制视频片段不会被删除。

你确定要继续删除该追踪目标吗?" + "desc": "删除此追踪目标后,将移除快照、所有已保存的嵌入向量数据以及任何相关的目标追踪详情条目,但在 历史 页面中追踪目标的录制视频片段不会被删除。

你确定要继续删除该追踪目标吗?" } }, "noTrackedObjects": "未找到追踪目标", @@ -259,7 +263,8 @@ "header": { "zones": "区", "ratio": "占比", - "area": "坐标区域" + "area": "坐标区域", + "score": "分数" } }, "annotationSettings": { @@ -274,7 +279,7 @@ "millisecondsToOffset": "用于偏移检测标记的毫秒数。 默认值:0", "tips": "提示:假设有一段人从左向右走的事件录制,如果事件时间轴中的边框始终在人的左侧(即后方),则应该减小偏移值;反之,如果边框始终领先于人物,则应增大偏移值。", "toast": { - "success": "{{camera}} 的标记偏移量已保存。请重启 Frigate 以应用更改。" + "success": "{{camera}} 的标记偏移量已保存。" } } }, diff --git a/web/public/locales/zh-CN/views/faceLibrary.json b/web/public/locales/zh-CN/views/faceLibrary.json index 5feae2b2c..b4bde067b 100644 --- a/web/public/locales/zh-CN/views/faceLibrary.json +++ b/web/public/locales/zh-CN/views/faceLibrary.json @@ -28,7 +28,8 @@ "train": { "title": "近期识别记录", "aria": "选择近期识别记录", - "empty": "近期未检测到人脸识别操作" + "empty": "近期未检测到人脸识别操作", + "titleShort": "近期" }, "selectItem": "选择 {{item}}", "selectFace": "选择人脸", diff --git a/web/public/locales/zh-CN/views/live.json b/web/public/locales/zh-CN/views/live.json index 48daee8b9..aeefa1826 100644 --- a/web/public/locales/zh-CN/views/live.json +++ b/web/public/locales/zh-CN/views/live.json @@ -142,7 +142,7 @@ "cameraSettings": { "title": "{{camera}} 设置", "cameraEnabled": "摄像头已启用", - "objectDetection": "对象检测", + "objectDetection": "目标检测", "recording": "录制", "snapshots": "快照", "audioDetection": "音频检测", @@ -155,8 +155,8 @@ "effectiveRetainMode": { "modes": { "all": "全部", - "motion": "运动", - "active_objects": "活动对象" + "motion": "画面变动", + "active_objects": "活动目标" }, "notAllTips": "您的 {{source}} 录制保留配置设置为 mode: {{effectiveRetainMode}},因此此按需录制将仅保留包含 {{effectiveRetainModeName}} 的片段。" }, @@ -174,7 +174,11 @@ "noCameras": { "title": "未设置摄像头", "description": "准备开始连接摄像头至 Frigate 。", - "buttonText": "添加摄像头" + "buttonText": "添加摄像头", + "restricted": { + "title": "无可用摄像头", + "description": "你没有权限查看此分组中的任何摄像头。" + } }, "snapshot": { "takeSnapshot": "下载即时快照", diff --git a/web/public/locales/zh-CN/views/settings.json b/web/public/locales/zh-CN/views/settings.json index e5a4a9e9a..5a5130fa0 100644 --- a/web/public/locales/zh-CN/views/settings.json +++ b/web/public/locales/zh-CN/views/settings.json @@ -5,7 +5,7 @@ "camera": "摄像头设置 - Frigate", "classification": "分类设置 - Frigate", "masksAndZones": "遮罩和区域编辑器 - Frigate", - "motionTuner": "运动调整器 - Frigate", + "motionTuner": "画面变动调整器 - Frigate", "object": "调试 - Frigate", "general": "页面设置 - Frigate", "frigatePlus": "Frigate+ 设置 - Frigate", @@ -19,7 +19,7 @@ "classification": "分类设置", "cameras": "摄像头设置", "masksAndZones": "遮罩/ 区域", - "motionTuner": "运动调整器", + "motionTuner": "画面变动调整器", "debug": "调试", "users": "用户", "notifications": "通知", @@ -309,7 +309,7 @@ "name": { "title": "区域名称", "inputPlaceHolder": "请输入名称…", - "tips": "名称至少包含两个字符,且不能和摄像头或其他区域同名。" + "tips": "名称至少包含两个字符,且不能和摄像头名或该摄像头下的其他区域同名。" }, "inertia": { "title": "惯性", @@ -344,33 +344,33 @@ } }, "toast": { - "success": "区域 ({{zoneName}}) 已保存。请重启 Frigate 以应用更改。" + "success": "区域 ({{zoneName}}) 已保存。" } }, "motionMasks": { - "label": "运动遮罩", - "documentTitle": "编辑运动遮罩 - Frigate", + "label": "画面变动遮罩", + "documentTitle": "编辑画面变动遮罩 - Frigate", "desc": { "title": "画面变动遮罩用于防止触发不必要的画面变动检测。过度的设置遮罩将使目标更加难以被追踪。", "documentation": "文档" }, - "add": "添加运动遮罩", - "edit": "编辑运动遮罩", + "add": "添加画面变动遮罩", + "edit": "编辑画面变动遮罩", "context": { - "title": "运动遮罩用于防止不需要的运动类型触发检测(例如:树枝、摄像头画面显示的时间等)。运动遮罩需要谨慎使用,过度的遮罩会导致追踪对象变得更加困难。", + "title": "画面变动遮罩用于防止不需要的画面变动触发检测(例如:容易被风吹动的树枝、摄像头画面上显示的时间等)。画面变动遮罩应谨慎使用,过度的遮罩会导致追踪目标变得更加困难。", "documentation": "阅读文档" }, "point_other": "{{count}} 点", "clickDrawPolygon": "在图像上点击添加点绘制多边形区域。", "polygonAreaTooLarge": { - "title": "运动遮罩的大小达到了摄像头画面的{{polygonArea}}%。不建议设置太大的运动遮罩。", + "title": "画面变动遮罩的大小达到了摄像头画面的{{polygonArea}}%。不建议设置太大的画面变动遮罩。", "tips": "画面变动遮罩并不会使该区域无法检测到指定目标/物体,如有需要,你应该使用 区域 来限制检测的目标/物体类型。", "documentation": "阅读文档" }, "toast": { "success": { - "title": "{{polygonName}} 已保存。请重启 Frigate 以应用更改。", - "noName": "运动遮罩已保存。请重启 Frigate 以应用更改。" + "title": "{{polygonName}} 已保存。", + "noName": "画面变动遮罩已保存。" } } }, @@ -393,37 +393,37 @@ }, "toast": { "success": { - "title": "{{polygonName}} 已保存。请重启 Frigate 以应用更改。", - "noName": "目标遮罩已保存。请重启 Frigate 以应用更改。" + "title": "{{polygonName}} 已保存。", + "noName": "目标遮罩已保存。" } } }, "restart_required": "需要重启(遮罩与区域已修改)", - "motionMaskLabel": "运动遮罩 {{number}}", + "motionMaskLabel": "画面变动遮罩 {{number}}", "objectMaskLabel": "目标/物体遮罩 {{number}}({{label}})" }, "motionDetectionTuner": { - "title": "运动检测调整器", + "title": "画面变动检测调整器", "desc": { "title": "Frigate 将使用画面变化检测作为首个步骤,以确认一帧画面中是否有目标或物体需要使用目标检测。", - "documentation": "阅读有关运动检测的文档" + "documentation": "阅读有关画面变动检测的文档" }, "Threshold": { "title": "阈值", - "desc": "阈值决定像素亮度高于多少时会被认为是运动。默认值:30" + "desc": "阈值决定像素亮度变化达到多少时会被认为是画面变动。默认值:30" }, "contourArea": { "title": "轮廓面积", - "desc": "轮廓面积决定哪些变化的像素组符合运动条件。默认值:10" + "desc": "轮廓面积值用于判断哪些相连的像素变化区域可被认定为画面变动。默认值:10" }, "improveContrast": { "title": "提高对比度", "desc": "提高较暗场景的对比度。默认值:启用" }, "toast": { - "success": "运动设置已保存。" + "success": "画面变动设置已保存。" }, - "unsavedChanges": "{{camera}} 的运动调整器设置未保存" + "unsavedChanges": "{{camera}} 的画面变动调整器设置未保存" }, "debug": { "title": "调试", @@ -449,32 +449,32 @@ "desc": "显示已定义的区域图层" }, "mask": { - "title": "运动遮罩", - "desc": "显示运动遮罩图层" + "title": "画面变动遮罩", + "desc": "显示画面变动遮罩图层" }, "motion": { - "title": "运动区域框", - "desc": "在检测到运动的区域显示区域框", - "tips": "

运动区域框


将在当前检测到运动的区域内显示红色区域框。

" + "title": "画面变动区域框", + "desc": "在检测到画面变动的区域显示区域框", + "tips": "

画面变动区域框


将在当前检测到画面变动的区域内显示红色区域框。

" }, "regions": { "title": "范围", - "desc": "显示发送到运动检测器感兴趣范围的框", + "desc": "显示发送给目标检测器感兴趣的区域框", "tips": "

范围框


将在帧中发送到目标检测器的感兴趣范围上叠加绿色框。

" }, "objectShapeFilterDrawing": { - "title": "允许绘制“对象形状过滤器”", + "title": "允许绘制“目标形状过滤器”", "desc": "在图像上绘制矩形,以查看区域和比例详细信息", - "tips": "启用此选项,能够在摄像头图像上绘制矩形,将显示其区域和比例。然后,您可以使用这些值在配置中设置对象形状过滤器参数。", + "tips": "启用此选项,能够在摄像头画面上绘制矩形,将显示其区域和比例。你可以通过使用这些值在配置中设置目标形状过滤器的参数。", "document": "阅读文档 ", "score": "分数", "ratio": "比例", "area": "区域" }, "paths": { - "title": "运动轨迹", - "desc": "显示被追踪目标的运动轨迹关键点", - "tips": "

运动轨迹

将使用线条和圆圈标示被追踪目标在其活动周期内移动的关键位置点。

" + "title": "行动轨迹", + "desc": "显示被追踪目标的行动轨迹关键点", + "tips": "

行动轨迹

将使用线条来标示被追踪目标在其活动周期内移动的关键位置点。

" }, "audio": { "title": "音频", @@ -538,7 +538,16 @@ "veryStrong": "非常强" }, "match": "密码匹配", - "notMatch": "密码不匹配" + "notMatch": "密码不匹配", + "show": "显示密码", + "hide": "隐藏密码", + "requirements": { + "title": "密码要求:", + "length": "至少8个字符", + "uppercase": "至少一个大写字母", + "digit": "至少一位数字", + "special": "至少一个特殊符号 (!@#$%^&*(),.?\":{}|<>)" + } }, "newPassword": { "title": "新密码", @@ -548,7 +557,11 @@ } }, "usernameIsRequired": "用户名为必填项", - "passwordIsRequired": "必须输入密码" + "passwordIsRequired": "必须输入密码", + "currentPassword": { + "title": "当前密码", + "placeholder": "请输入当前密码" + } }, "createUser": { "title": "创建新用户", @@ -566,7 +579,12 @@ "setPassword": "设置密码", "desc": "创建一个强密码来保护此账户。", "doNotMatch": "两次输入密码不匹配", - "cannotBeEmpty": "密码不能为空" + "cannotBeEmpty": "密码不能为空", + "currentPasswordRequired": "当前密码为必填", + "incorrectCurrentPassword": "当前密码错误", + "passwordVerificationFailed": "验证密码失败", + "multiDeviceWarning": "其他已登录的设备将需要在 {{refresh_time}} 内重新登录。", + "multiDeviceAdmin": "你也可以通过轮换你的 JWT 密钥,强制所有用户立即重新登录验证。" }, "changeRole": { "title": "更改用户权限组", @@ -749,7 +767,7 @@ "documentTitle": "触发器", "management": { "title": "触发器", - "desc": "管理 {{camera}} 的触发器。您可以使用“缩略图”类型,基于与所选追踪对象相似的缩略图来触发;也可以使用“描述”类型,基于与您指定的文本相似的描述来触发。" + "desc": "管理 {{camera}} 的触发器。你可以使用“缩略图”类型,将通过与追踪目标相似的缩略图来触发;也可以使用“描述”类型,基于与你指定的文本相似的描述来触发(中文描述需要使用jina v2模型,对配置要求更高)。" }, "addTrigger": "添加触发器", "table": { @@ -811,7 +829,7 @@ "imagePlaceholder": "选择图片", "textPlaceholder": "输入文字内容", "imageDesc": "仅显示最近的 100 张缩略图。如果找不到需要的图片,请前往“浏览”页面查看更早的目标,并从菜单中设置触发器。", - "textDesc": "输入文本,当检测到相似的追踪对象描述时触发此操作。", + "textDesc": "输入文本,当检测到相似的追踪目标描述时触发此操作。", "error": { "required": "内容为必填项。" } @@ -826,7 +844,7 @@ }, "actions": { "title": "动作", - "desc": "默认情况下,Frigate 会为所有触发器发送 MQTT 消息。子标签会将触发器名称添加到对象标签中。属性是可搜索的元数据,独立存储在追踪对象的元数据中。", + "desc": "默认情况下,Frigate 会为所有触发器发送 MQTT 消息。子标签会将触发器名称添加到目标标签中。属性是可搜索的元数据,独立存储在追踪目标的元数据中。", "error": { "min": "必须至少选择一项动作。" } @@ -1196,7 +1214,8 @@ "audioCodecRequired": "要实现音频检测功能,必须要有音频流。", "restreamingWarning": "为录制流开启“减少与摄像头的连接数”可能会略微增加CPU使用率。", "brands": { - "reolink-rtsp": "不建议使用 Reolink 的 RTSP 协议。请在摄像头后台设置中启用 HTTP协议,并重新启动向导。" + "reolink-rtsp": "不建议使用 Reolink 的 RTSP 协议。请在摄像头后台设置中启用 HTTP协议,并重新启动向导。", + "reolink-http": "Reolink HTTP 视频流应该使用 FFmpeg 以获得更好的兼容性,为此视频流启用“使用流兼容模式”。" }, "dahua": { "substreamWarning": "子码流1当前被锁定为低分辨率。多数大华、安讯士、EmpireTech品牌的摄像头都支持额外的子码流,这些子码流需要在摄像头设置中手动启用。如果你的设备支持,建议你检查并使用这些高分辨率子码流。" diff --git a/web/public/locales/zh-CN/views/system.json b/web/public/locales/zh-CN/views/system.json index 7182ff000..3d6eff072 100644 --- a/web/public/locales/zh-CN/views/system.json +++ b/web/public/locales/zh-CN/views/system.json @@ -76,7 +76,12 @@ } }, "npuMemory": "NPU内存", - "npuUsage": "NPU使用率" + "npuUsage": "NPU使用率", + "intelGpuWarning": { + "title": "Intel GPU 处于警告状态", + "message": "GPU 状态不可用", + "description": "这是 Intel 的 GPU 状态报告工具(intel_gpu_top)的已知问题:该工具会失效并反复返回 GPU 使用率为 0%,即使在硬件加速和目标检测已在 (i)GPU 上正常运行的情况下也是如此,这并不是 Frigate 的 bug。你可以通过重启主机来临时修复该问题,并确认 GPU 正常工作。该问题并不会影响性能。" + } }, "otherProcesses": { "title": "其他进程",