From c0ffb395f881aef08b118f636eaf54889e24f5a5 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 4 Apr 2026 14:57:57 +0200 Subject: [PATCH] Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 99.8% (1069 of 1071 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 99.9% (1067 of 1068 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (1065 of 1065 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (469 of 469 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (174 of 174 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (790 of 790 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (99 of 99 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (129 of 129 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (1049 of 1049 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (790 of 790 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (58 of 58 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (469 of 469 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 94.0% (963 of 1024 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (467 of 467 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 91.1% (925 of 1015 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (788 of 788 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 99.3% (783 of 788 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 98.9% (780 of 788 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (142 of 142 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (98 of 98 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (23 of 23 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (122 of 122 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (47 of 47 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 98.3% (120 of 122 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (62 of 62 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (172 of 172 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (235 of 235 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 98.8% (779 of 788 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 98.8% (779 of 788 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (123 of 123 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 99.5% (465 of 467 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 91.2% (923 of 1011 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (98 of 98 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 91.2% (923 of 1011 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (62 of 62 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 99.3% (466 of 469 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 96.8% (1082 of 1117 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (231 of 231 strings) Co-authored-by: Anonymous Co-authored-by: GuoQing Liu <842607283@qq.com> Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/zh_Hans/ Translation: Frigate NVR/Config - Cameras Translation: Frigate NVR/Config - Global Translation: Frigate NVR/common Translation: Frigate NVR/components-camera Translation: Frigate NVR/objects Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-exports Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-live Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/zh-CN/common.json | 13 +- .../locales/zh-CN/components/camera.json | 3 +- web/public/locales/zh-CN/config/cameras.json | 38 +-- web/public/locales/zh-CN/config/global.json | 117 +++++++-- web/public/locales/zh-CN/objects.json | 7 +- .../zh-CN/views/classificationModel.json | 23 +- web/public/locales/zh-CN/views/events.json | 6 +- web/public/locales/zh-CN/views/explore.json | 9 +- web/public/locales/zh-CN/views/exports.json | 4 +- .../locales/zh-CN/views/faceLibrary.json | 10 +- web/public/locales/zh-CN/views/live.json | 17 +- web/public/locales/zh-CN/views/settings.json | 246 +++++++++++++++++- web/public/locales/zh-CN/views/system.json | 10 +- 13 files changed, 421 insertions(+), 82 deletions(-) diff --git a/web/public/locales/zh-CN/common.json b/web/public/locales/zh-CN/common.json index 44d326acf..e9337cfc7 100644 --- a/web/public/locales/zh-CN/common.json +++ b/web/public/locales/zh-CN/common.json @@ -167,7 +167,8 @@ "resetToDefault": "重置为默认", "saveAll": "保存全部", "savingAll": "保存全部中…", - "undoAll": "撤销全部" + "undoAll": "撤销全部", + "retry": "重试" }, "menu": { "system": "系统", @@ -271,7 +272,8 @@ "restart": "重启 Frigate", "classification": "目标分类", "actions": "操作", - "chat": "聊天" + "chat": "聊天", + "profiles": "配置模板" }, "toast": { "copyUrlToClipboard": "已复制链接到剪贴板。", @@ -280,7 +282,8 @@ "error": { "title": "保存配置信息失败: {{errorMessage}}", "noMessage": "保存配置信息失败" - } + }, + "success": "成功保存配置文件。" } }, "role": { @@ -312,5 +315,7 @@ "field": { "optional": "可选", "internalID": "Frigate 在配置与数据库中使用的内部 ID" - } + }, + "no_items": "没有项目", + "validation_errors": "验证错误" } diff --git a/web/public/locales/zh-CN/components/camera.json b/web/public/locales/zh-CN/components/camera.json index e01d5e9aa..9bd70155e 100644 --- a/web/public/locales/zh-CN/components/camera.json +++ b/web/public/locales/zh-CN/components/camera.json @@ -82,6 +82,7 @@ "zones": "区域", "mask": "遮罩", "motion": "画面变动", - "regions": "区域" + "regions": "区域", + "paths": "行动轨迹" } } diff --git a/web/public/locales/zh-CN/config/cameras.json b/web/public/locales/zh-CN/config/cameras.json index 9bb156748..aa627f549 100644 --- a/web/public/locales/zh-CN/config/cameras.json +++ b/web/public/locales/zh-CN/config/cameras.json @@ -41,7 +41,7 @@ }, "enabled_in_config": { "label": "原始音频状态", - "description": "指示原始静态配置文件中是否启用了音频检测。" + "description": "指示原始静态配置文件中是否开启了音频检测。" } }, "audio_transcription": { @@ -79,8 +79,8 @@ "label": "目标检测", "description": "用于运行目标检测、初始化追踪器的检测模块设置。", "enabled": { - "label": "开启检测", - "description": "开启或关闭该摄像头的目标检测。如需运行目标追踪,必须先开启检测。" + "label": "开启目标检测", + "description": "开启或关闭该摄像头的目标检测。" }, "height": { "label": "检测画面高度", @@ -299,7 +299,7 @@ }, "skip_motion_threshold": { "label": "跳过画面变动阈值", - "description": "如果单帧中图像变化超过此比例,检测器将返回无画面变动框并立即重新校准。这可以节省 CPU 并减少闪电、风暴等情况下的误报,但可能会错过真实事件,如 PTZ 摄像头自动追踪目标。权衡的是丢弃几兆字节的录像与查看几个短片之间的取舍。范围 0.0 到 1.0。" + "description": "如果单帧中画面变化超过此比例,检测器将判定为无画面变动并立即重新校准。这可以节省 CPU 并减少闪电、风暴等情况下的误报,但也可能会错过真正的事件,如 PTZ 摄像头自动追踪目标。你需要权衡取舍:是否牺牲少量录制片段,换取更少无效视频与更低的误检。保持为空即可关闭该功能。" }, "improve_contrast": { "label": "改善对比度", @@ -560,7 +560,7 @@ }, "detections": { "label": "检测配置", - "description": "创建检测事件(非警报)以及保留多长时间的设置。", + "description": "用于设置哪些追踪目标会生成检测记录(非警报类),以及检测记录的保留方式。", "enabled": { "label": "开启检测", "description": "开启或关闭此摄像头的检测事件。" @@ -636,15 +636,15 @@ }, "timestamp": { "label": "时间戳叠加", - "description": "在保存的快照上叠加时间戳。" + "description": "在 API 生成的快照上叠加时间戳。" }, "bounding_box": { "label": "边界框叠加", - "description": "在保存的快照上绘制追踪目标的边界框。" + "description": "在 API 生成的快照上绘制追踪目标的边界框。" }, "crop": { "label": "裁剪快照", - "description": "将保存的快照裁剪到检测到的目标边界框。" + "description": "在 API 生成的快照裁剪到检测到的目标边界框。" }, "required_zones": { "label": "必需区域", @@ -652,11 +652,11 @@ }, "height": { "label": "快照高度", - "description": "将保存的快照调整到的目标高度(像素);留空则保持原始大小。" + "description": "将 API 生成的快照调整到的目标高度(像素);留空则保持原始大小。" }, "retain": { "label": "快照保留", - "description": "保存快照的保留设置,包括默认天数和按目标覆盖。", + "description": "快照的保留设置,包括默认天数和按目标覆盖。", "default": { "label": "默认保留", "description": "保留快照的默认天数。" @@ -671,10 +671,10 @@ } }, "quality": { - "label": "JPEG 质量", - "description": "保存快照的 JPEG 编码质量(0-100)。" + "label": "快照质量", + "description": "保存快照的编码质量(0-100)。" }, - "description": "此摄像头保存的追踪目标 JPEG 快照设置。" + "description": "此摄像头的追踪目标 API 快照设置。" }, "timestamp_style": { "label": "时间戳样式", @@ -748,8 +748,8 @@ "label": "车牌识别", "description": "车牌识别设置,包括检测阈值、格式化和已知车牌。", "enabled": { - "label": "开启 LPR", - "description": "在此摄像头上启用或禁用 LPR。" + "label": "开启车牌识别", + "description": "在此摄像头上启用或禁用车牌识别。" }, "min_area": { "label": "最小车牌区域", @@ -834,6 +834,10 @@ "ignore_time_mismatch": { "label": "忽略时间不匹配", "description": "忽略 ONVIF 通信中摄像头和 Frigate 服务器之间的时间同步差异。" + }, + "profile": { + "label": "ONVIF 配置文件", + "description": "用于 PTZ 控制的指定 ONVIF 媒体配置,将通过 Token 或名称匹配。如果未手动指定,将自动选择第一个包含有效 PTZ 配置的媒体配置。" } }, "ui": { @@ -937,5 +941,9 @@ "enabled_in_config": { "label": "原始摄像头状态", "description": "保持摄像头的原始状态跟踪。" + }, + "profiles": { + "label": "配置模板", + "description": "可在运行时切换指定命名的配置模板,支持局部覆盖参数。" } } diff --git a/web/public/locales/zh-CN/config/global.json b/web/public/locales/zh-CN/config/global.json index 3ccb7423b..b14f4acbf 100644 --- a/web/public/locales/zh-CN/config/global.json +++ b/web/public/locales/zh-CN/config/global.json @@ -5,7 +5,7 @@ }, "safe_mode": { "label": "安全模式", - "description": "启用后,Frigate 将以安全模式启动,将会关闭部分功能,以便排查问题。" + "description": "开启后,Frigate 将以安全模式启动,将会关闭部分功能,以便排查问题。" }, "environment_vars": { "label": "环境变量", @@ -52,7 +52,7 @@ }, "enabled_in_config": { "label": "原始音频状态", - "description": "指示原始静态配置文件中是否启用了音频检测。" + "description": "指示原始静态配置文件中是否开启了音频检测。" } }, "auth": { @@ -68,7 +68,7 @@ }, "reset_admin_password": { "label": "重置管理员密码", - "description": "启用后,启动时将重置管理员用户密码,并在日志中打印新密码。" + "description": "开启后,启动时将重置管理员用户密码,并在日志中打印新密码。" }, "cookie_name": { "label": "JWT Cookie 名称", @@ -183,8 +183,8 @@ "label": "目标检测", "description": "用于运行目标检测、初始化追踪器的检测模块设置。", "enabled": { - "label": "开启检测", - "description": "为所有摄像头启用或禁用目标检测;可按摄像头覆盖。必须启用检测才能运行目标追踪。" + "label": "开启目标检测", + "description": "为所有摄像头启用或禁用目标检测,可按摄像头覆盖。" }, "height": { "label": "检测画面高度", @@ -536,7 +536,7 @@ "description": "Frigate Web 端点(端口 8971)的 TLS 设置。", "enabled": { "label": "开启 TLS", - "description": "在配置的 TLS 端口上为 Frigate 的 Web UI 和 API 启用 TLS。" + "description": "为 Frigate 的 Web 页面和 API 的端口开启 TLS 加密。" } }, "ui": { @@ -567,7 +567,7 @@ "label": "检测器硬件", "description": "目标检测器(CPU、GPU、ONNX 后端)的配置以及任何检测器特定的模型设置。", "type": { - "label": "检测器类型", + "label": "类型", "description": "用于目标检测的检测器类型(例如 'cpu'、'edgetpu'、'openvino')。" }, "cpu": { @@ -1352,6 +1352,61 @@ "label": "ZMQ 套接字逗留时间(毫秒)", "description": "套接字逗留时间(毫秒)。" } + }, + "axengine": { + "label": "爱芯元智 NPU", + "description": "AXERA AX650N/AX8850N NPU 检测器,通过 AXEngine 运行库加载并执行编译后的 .axmodel 模型文件。", + "type": { + "label": "类型" + } + }, + "model": { + "label": "检测器特定的模型配置", + "description": "检测器特定的模型配置选项(路径、输入尺寸等)。", + "path": { + "label": "自定义目标检测模型路径", + "description": "自定义检测模型文件的路径(或使用 plus:// 指定 Frigate+ 模型)。" + }, + "labelmap_path": { + "label": "自定义目标检测器的标签映射(labelmap)", + "description": "检测器标签映射文件(labelmap)路径,用于将数字类别映射为文字标签。" + }, + "width": { + "label": "目标检测模型输入宽度", + "description": "模型输入张量(input tensor)的宽度(以像素为单位)。" + }, + "height": { + "label": "目标检测模型输入高度", + "description": "模型输入张量(input tensor)的高度(以像素为单位)。" + }, + "labelmap": { + "label": "标签映射(labelmap)自定义", + "description": "合并到标准标签映射表中的覆盖 / 重映射规则。" + }, + "attributes_map": { + "label": "目标标签到其属性标签的映射", + "description": "用于绑定元数据的目标标签 → 属性标签映射关系(例如:'car'→ ['license_plate'] 为将车牌属性绑定到车辆上)。" + }, + "input_tensor": { + "label": "模型输入张量形状", + "description": "模型期望的张量格式(Tensor format):'nhwc' 或 'nchw'。" + }, + "input_pixel_format": { + "label": "模型输入像素颜色格式", + "description": "模型期望的像素颜色空间:'rgb'、'bgr' 或 'yuv'。" + }, + "input_dtype": { + "label": "模型输入数据类型", + "description": "模型输入张量的数据类型(例如 'float32')。" + }, + "model_type": { + "label": "目标检测模型类型", + "description": "某些检测器用于优化的检测器模型架构类型(ssd、yolox、yolonas)。" + } + }, + "model_path": { + "label": "检测器专用模型路径", + "description": "所选检测器需要时,需填写其模型文件的路径。" } }, "model": { @@ -1399,7 +1454,7 @@ } }, "genai": { - "label": "生成式 AI 配置(命名提供商)。", + "label": "生成式 AI 配置", "description": "用于生成目标描述和核查摘要的集成生成式 AI 提供商设置。", "api_key": { "label": "API 密钥", @@ -1432,7 +1487,7 @@ }, "live": { "label": "实时回放", - "description": "Web UI 用于控制实时监控流分辨率和质量的设置。", + "description": "用于控制 JSMPEG 实时流分辨率与画质的设置。此设置不影响使用 go2rtc 进行实时预览的摄像头。", "streams": { "label": "实时监控流名称", "description": "配置的流名称到用于实时监控播放的 restream/go2rtc 名称的映射。" @@ -1463,7 +1518,7 @@ }, "skip_motion_threshold": { "label": "跳过画面变动阈值", - "description": "如果单帧中图像变化超过此比例,检测器将返回无画面变动框并立即重新校准。这可以节省 CPU 并减少闪电、风暴等情况下的误报,但可能会错过真实事件,如 PTZ 摄像头自动追踪目标。权衡的是丢弃几兆字节的录像与查看几个短片之间的取舍。范围 0.0 到 1.0。" + "description": "如果单帧中画面变化超过此比例,检测器将判定为无画面变动并立即重新校准。这可以节省 CPU 并减少闪电、风暴等情况下的误报,但也可能会错过真正的事件,如 PTZ 摄像头自动追踪目标。你需要权衡取舍:是否牺牲少量录制片段,换取更少无效视频与更低的误检。保持为空即可关闭该功能。" }, "improve_contrast": { "label": "改善对比度", @@ -1724,7 +1779,7 @@ }, "detections": { "label": "检测配置", - "description": "创建检测事件(非警报)以及保留多长时间的设置。", + "description": "用于设置哪些追踪目标会生成检测记录(非警报类),以及检测记录的保留方式。", "enabled": { "label": "开启检测", "description": "为所有摄像头启用或禁用检测事件;可按摄像头覆盖。" @@ -1789,7 +1844,7 @@ }, "snapshots": { "label": "快照", - "description": "所有摄像头的追踪目标 JPEG 快照保存设置;可按摄像头覆盖。", + "description": "所有摄像头的追踪目标 API 快照设置;可摄像头单独配置覆盖全局配置。", "enabled": { "label": "开启快照", "description": "为所有摄像头启用或禁用保存快照;可按摄像头覆盖。" @@ -1800,15 +1855,15 @@ }, "timestamp": { "label": "时间戳叠加", - "description": "在保存的快照上叠加时间戳。" + "description": "在 API 生成的快照上叠加时间戳。" }, "bounding_box": { "label": "边界框叠加", - "description": "在保存的快照上绘制追踪目标的边界框。" + "description": "在 API 生成的快照上绘制追踪目标的边界框。" }, "crop": { "label": "裁剪快照", - "description": "将保存的快照裁剪到检测到的目标边界框。" + "description": "在 API 生成的快照裁剪到检测到的目标边界框。" }, "required_zones": { "label": "必需区域", @@ -1816,11 +1871,11 @@ }, "height": { "label": "快照高度", - "description": "将保存的快照调整到的目标高度(像素);留空则保持原始大小。" + "description": "将 API 生成的快照调整到的目标高度(像素);留空则保持原始大小。" }, "retain": { "label": "快照保留", - "description": "保存快照的保留设置,包括默认天数和按目标覆盖。", + "description": "快照的保留设置,包括默认天数和按目标覆盖。", "default": { "label": "默认保留", "description": "保留快照的默认天数。" @@ -1835,8 +1890,8 @@ } }, "quality": { - "label": "JPEG 质量", - "description": "保存快照的 JPEG 编码质量(0-100)。" + "label": "快照质量", + "description": "保存快照的编码质量(0-100)。" } }, "timestamp_style": { @@ -1951,8 +2006,8 @@ "description": "触发将历史追踪目标完全重新索引到嵌入数据库。" }, "model": { - "label": "语义搜索模型", - "description": "用于语义搜索的嵌入模型(例如 'jinav1')。" + "label": "语义搜索模型或生成式 AI 服务名称", + "description": "用于语义搜索的嵌入模型(例如 'jinav1'),或具有嵌入功能(embeddings)的生成式 AI 服务名称。" }, "model_size": { "label": "模型大小", @@ -1995,12 +2050,12 @@ "label": "车牌识别", "description": "车牌识别设置,包括检测阈值、格式化和已知车牌。", "enabled": { - "label": "开启 LPR", + "label": "开启车牌识别", "description": "为所有摄像头启用或禁用车牌识别;可按摄像头覆盖。" }, "model_size": { "label": "模型大小", - "description": "用于文本检测/识别的模型大小。大多数用户应使用 'small'。" + "description": "用于文本检测/识别的模型大小,大多数用户应使用 'small',只有'small'模型支持中文。" }, "detection_threshold": { "label": "检测阈值", @@ -2187,6 +2242,22 @@ "ignore_time_mismatch": { "label": "忽略时间不匹配", "description": "忽略 ONVIF 通信中摄像头和 Frigate 服务器之间的时间同步差异。" + }, + "profile": { + "label": "ONVIF 配置文件", + "description": "用于 PTZ 控制的指定 ONVIF 媒体配置,将通过 Token 或名称匹配。如果未手动指定,将自动选择第一个包含有效 PTZ 配置的媒体配置。" } + }, + "profiles": { + "label": "配置模板", + "description": "带有别名的命名配置模板定义。摄像头配置模板必须引用此处定义的名称。", + "friendly_name": { + "label": "别名", + "description": "在界面中显示的此配置模板名称,可以使用中文。" + } + }, + "active_profile": { + "label": "激活配置模板", + "description": "当前激活的配置模板名称。仅在运行时使用,不会写入 YAML 配置文件中。" } } diff --git a/web/public/locales/zh-CN/objects.json b/web/public/locales/zh-CN/objects.json index 193f87179..f8d07bc23 100644 --- a/web/public/locales/zh-CN/objects.json +++ b/web/public/locales/zh-CN/objects.json @@ -116,5 +116,10 @@ "nzpost": "新西兰邮政", "postnord": "北欧邮政", "gls": "GLS", - "dpd": "DPD" + "dpd": "DPD", + "canada_post": "加拿大邮政", + "royal_mail": "英国皇家邮政", + "school_bus": "校车", + "skunk": "臭鼬", + "kangaroo": "袋鼠" } diff --git a/web/public/locales/zh-CN/views/classificationModel.json b/web/public/locales/zh-CN/views/classificationModel.json index 3e9cf67fe..ea106839b 100644 --- a/web/public/locales/zh-CN/views/classificationModel.json +++ b/web/public/locales/zh-CN/views/classificationModel.json @@ -12,14 +12,15 @@ }, "toast": { "success": { - "deletedCategory": "删除类别", - "deletedImage": "删除图片", + "deletedCategory_other": "删除 {{count}} 个类别", + "deletedImage_other": "删除 {{count}} 张图片", "categorizedImage": "成功分类图片", "trainedModel": "训练模型成功。", "trainingModel": "已开始训练模型。", "deletedModel_other": "已删除 {{count}} 个模型", "updatedModel": "已更新模型配置", - "renamedCategory": "成功修改类别名称为 {{name}}" + "renamedCategory": "成功修改类别名称为 {{name}}", + "reclassifiedImage": "成功重新分类图片" }, "error": { "deleteImageFailed": "删除失败:{{errorMessage}}", @@ -29,7 +30,8 @@ "deleteModelFailed": "删除模型失败:{{errorMessage}}", "updateModelFailed": "更新模型失败:{{errorMessage}}", "trainingFailedToStart": "开始训练模型失败:{{errorMessage}}", - "renameCategoryFailed": "修改类别名称失败:{{errorMessage}}" + "renameCategoryFailed": "修改类别名称失败:{{errorMessage}}", + "reclassifyFailed": "重新分类图片失败:{{errorMessage}}" } }, "deleteCategory": { @@ -148,8 +150,13 @@ "allImagesRequired_other": "请对所有图片进行分类。还有 {{count}} 张图片需要分类。", "modelCreated": "模型创建成功。请在“最近分类”页面为缺失的状态添加图片,然后训练模型。", "missingStatesWarning": { - "title": "缺失状态示例", - "description": "建议为所有状态都选择示例图片以获得最佳效果。你也可以跳过当前为分类状态选择图片,但需要所有状态都有对应的图片,模型才能够进行训练。跳过后你可通过“最近分类”页面为缺失的状态分类添加图片,然后再训练模型。" + "title": "缺失分类示例", + "description": "并非所有类别都有示例。可尝试生成新示例以查找缺失的类别,或继续该步骤,之后通过 “最近分类” 页面添加图片。" + }, + "refreshExamples": "生成新示例", + "refreshConfirm": { + "title": "需要生成新示例?", + "description": "此操作将生成一组新的图片,并清除所有选择内容(包括之前的所有类别)。你需要为所有类别重新选择示例。" } } }, @@ -179,5 +186,7 @@ "noChanges": "自上次训练以来,数据集未作任何更改。", "modelNotReady": "模型尚未准备好进行训练" }, - "none": "无标签" + "none": "无标签", + "reclassifyImageAs": "重新分类图片为:", + "reclassifyImage": "重新分类图片" } diff --git a/web/public/locales/zh-CN/views/events.json b/web/public/locales/zh-CN/views/events.json index 3e479aa4a..f02a83907 100644 --- a/web/public/locales/zh-CN/views/events.json +++ b/web/public/locales/zh-CN/views/events.json @@ -12,10 +12,12 @@ "motion": "还没有画面变动类数据", "recordingsDisabled": { "title": "必须要开启录制功能", - "description": "必须要摄像头启用录制功能时,才可为其创建回放项目。" + "description": "必须要摄像头开启录制功能时,才可为其创建回放项目。" } }, - "timeline": "时间线", + "timeline": { + "label": "时间线" + }, "timeline.aria": "选择时间线", "events": { "label": "事件", diff --git a/web/public/locales/zh-CN/views/explore.json b/web/public/locales/zh-CN/views/explore.json index 63668057a..db062d455 100644 --- a/web/public/locales/zh-CN/views/explore.json +++ b/web/public/locales/zh-CN/views/explore.json @@ -169,7 +169,8 @@ "attributes": "分类属性", "title": { "label": "标题" - } + }, + "scoreInfo": "分数信息" }, "itemMenu": { "downloadVideo": { @@ -224,12 +225,18 @@ "debugReplay": { "label": "调试回放", "aria": "在调试回放视图中查看此被追踪对象" + }, + "more": { + "aria": "更多" } }, "dialog": { "confirmDelete": { "title": "确认删除", "desc": "删除此追踪目标后,将移除快照、所有已保存的嵌入向量数据以及任何相关的目标追踪详情条目,但在 历史 页面中追踪目标的录制视频片段不会被删除。

你确定要继续删除该追踪目标吗?" + }, + "toast": { + "error": "删除该追踪目标时出错:{{errorMessage}}" } }, "noTrackedObjects": "未找到追踪目标", diff --git a/web/public/locales/zh-CN/views/exports.json b/web/public/locales/zh-CN/views/exports.json index 864283d3f..b57b1a1c6 100644 --- a/web/public/locales/zh-CN/views/exports.json +++ b/web/public/locales/zh-CN/views/exports.json @@ -2,7 +2,9 @@ "documentTitle": "导出 - Frigate", "search": "搜索", "noExports": "没有找到导出的项目", - "deleteExport": "删除导出的项目", + "deleteExport": { + "label": "删除导出" + }, "deleteExport.desc": "你确定要删除 {{exportName}} 吗?", "editExport": { "title": "重命名导出", diff --git a/web/public/locales/zh-CN/views/faceLibrary.json b/web/public/locales/zh-CN/views/faceLibrary.json index b8e9a9501..d383fb348 100644 --- a/web/public/locales/zh-CN/views/faceLibrary.json +++ b/web/public/locales/zh-CN/views/faceLibrary.json @@ -65,7 +65,8 @@ "deletedName_other": "成功删除 {{count}} 个 人脸特征。", "trainedFace": "人脸特征训练成功。", "updatedFaceScore": "更新 {{name}} 人脸特征评分({{score}})成功。", - "renamedFace": "成功重命名人脸为{{name}}" + "renamedFace": "成功重命名人脸为{{name}}", + "reclassifiedFace": "重新分类人脸成功。" }, "error": { "uploadingImageFailed": "图片上传失败:{{errorMessage}}", @@ -74,7 +75,8 @@ "deleteNameFailed": "数据集删除失败:{{errorMessage}}", "trainFailed": "训练失败:{{errorMessage}}", "updateFaceScoreFailed": "更新人脸评分失败:{{errorMessage}}", - "renameFaceFailed": "重命名人脸失败:{{errorMessage}}" + "renameFaceFailed": "重命名人脸失败:{{errorMessage}}", + "reclassifyFailed": "重新分类人脸失败:{{errorMessage}}" } }, "steps": { @@ -95,5 +97,7 @@ "title": "删除人脸" }, "pixels": "{{area}} 像素", - "nofaces": "没有可用的人脸" + "nofaces": "没有可用的人脸", + "reclassifyFaceAs": "将人脸重新分类为:", + "reclassifyFace": "重新分类人脸" } diff --git a/web/public/locales/zh-CN/views/live.json b/web/public/locales/zh-CN/views/live.json index 0f025b5cc..10b8641d3 100644 --- a/web/public/locales/zh-CN/views/live.json +++ b/web/public/locales/zh-CN/views/live.json @@ -1,5 +1,7 @@ { - "documentTitle": "实时监控 - Frigate", + "documentTitle": { + "default": "实时监控 - Frigate" + }, "documentTitle.withCamera": "{{camera}} - 实时监控 - Frigate", "lowBandwidthMode": "低带宽模式", "twoWayTalk": { @@ -14,8 +16,9 @@ "move": { "clickMove": { "label": "点击画面以使摄像头居中", - "enable": "启用点击移动", - "disable": "禁用点击移动" + "enable": "开启点击移动", + "disable": "禁用点击移动", + "enableWithZoom": "开启点击移动 / 拖动缩放功能" }, "left": { "label": "PTZ摄像头向左移动" @@ -62,19 +65,19 @@ "disable": "取消屏蔽所有摄像头" }, "detect": { - "enable": "启用检测", + "enable": "开启检测", "disable": "关闭检测" }, "recording": { - "enable": "启用录制", + "enable": "开启录制", "disable": "关闭录制" }, "snapshots": { - "enable": "启用快照", + "enable": "开启快照", "disable": "关闭快照" }, "audioDetect": { - "enable": "启用音频检测", + "enable": "开启音频检测", "disable": "关闭音频检测" }, "autotracking": { diff --git a/web/public/locales/zh-CN/views/settings.json b/web/public/locales/zh-CN/views/settings.json index a5d78a01d..55190e53b 100644 --- a/web/public/locales/zh-CN/views/settings.json +++ b/web/public/locales/zh-CN/views/settings.json @@ -7,7 +7,7 @@ "masksAndZones": "遮罩和区域编辑器 - Frigate", "motionTuner": "画面变动调整 - Frigate", "object": "调试 - Frigate", - "general": "配置文件设置 - Frigate", + "general": "界面设置 - Frigate", "frigatePlus": "Frigate+ 设置 - Frigate", "notifications": "通知设置 - Frigate", "enrichments": "增强功能设置 - Frigate", @@ -15,7 +15,8 @@ "cameraReview": "摄像头核查设置 - Frigate", "globalConfig": "全局配置 - Frigate", "cameraConfig": "摄像头配置 - Frigate", - "maintenance": "维护 - Frigate" + "maintenance": "维护 - Frigate", + "profiles": "配置模板 - Frigate" }, "menu": { "ui": "界面设置", @@ -87,7 +88,11 @@ "cameraTimestampStyle": "时间戳样式", "cameraMqtt": "摄像头 MQTT", "mediaSync": "媒体同步", - "regionGrid": "区域网格" + "regionGrid": "区域网格", + "uiSettings": "界面设置", + "profiles": "配置模板", + "systemGo2rtcStreams": "go2rtc 视频流", + "maintenance": "维护" }, "dialog": { "unsavedChanges": { @@ -100,7 +105,7 @@ "noCamera": "没有摄像头" }, "general": { - "title": "配置文件设置", + "title": "界面设置", "liveDashboard": { "title": "实时监控面板", "automaticLiveView": { @@ -351,12 +356,26 @@ "zone": "区域", "motion_mask": "画面变动遮罩", "object_mask": "目标遮罩" + }, + "revertOverride": { + "title": "恢复为默认配置" } }, "speed": { "error": { "mustBeGreaterOrEqualTo": "速度阈值必须大于或等于0.1。" } + }, + "id": { + "error": { + "mustNotBeEmpty": "ID 不能为空。", + "alreadyExists": "此摄像头已存在使用该 ID 的遮罩。" + } + }, + "name": { + "error": { + "mustNotBeEmpty": "名称不能为空。" + } } }, "zones": { @@ -486,7 +505,10 @@ "title": "开启", "description": "指示该遮罩在配置文件中是否处于激活并启用的状态。若被禁用,则无法通过 MQTT 启用。禁用的遮罩在运行时会被忽略。" } - } + }, + "profileBase": "(基础)", + "profileOverride": "(覆盖)", + "addDisabledProfile": "先添加到基础配置中,然后在配置模板中进行覆盖" }, "motionDetectionTuner": { "title": "画面变动检测调整", @@ -753,9 +775,9 @@ }, "snapshotConfig": { "title": "快照配置", - "desc": "提交到 Frigate+ 需要同时在配置中启用快照和 clean_copy 快照。", + "desc": "提交到 Frigate+ 需要同时在配置中开启快照功能。", "documentation": "阅读文档", - "cleanCopyWarning": "部分摄像头已启用快照但未启用 clean_copy。您需要在快照配置中启用 clean_copy,才能将这些摄像头的图像提交到 Frigate+。", + "cleanCopyWarning": "部分摄像头未开启快照功能", "table": { "camera": "摄像头", "snapshots": "快照", @@ -1374,6 +1396,14 @@ "confirmButton": "永久删除", "success": "摄像头 {{cameraName}} 删除完成", "error": "删除摄像头 {{cameraName}} 失败" + }, + "profiles": { + "title": "配置模板的摄像头覆盖项", + "selectLabel": "选择配置模板", + "description": "配置在启用某个配置模板时,哪些摄像头应被开启或关闭。设置为“继承”的摄像头会沿用它原本的启用/禁用状态。", + "inherit": "继承", + "enabled": "开启", + "disabled": "关闭" } }, "cameraReview": { @@ -1428,6 +1458,9 @@ "value": { "label": "新值", "reset": "重置" + }, + "profile": { + "label": "配置" } }, "detectionModel": { @@ -1465,7 +1498,8 @@ "genai": "生成式 AI", "face_recognition": "人脸识别", "lpr": "车牌识别", - "birdseye": "鸟瞰图" + "birdseye": "鸟瞰图", + "masksAndZones": "遮罩 / 区域" }, "global": { "title": "全局设置", @@ -1473,7 +1507,8 @@ }, "camera": { "title": "摄像头设置", - "description": "这些设置仅适用于此摄像头,并会覆盖全局设置。" + "description": "这些设置仅适用于此摄像头,并会覆盖全局设置。", + "noCameras": "没有可用的摄像头" }, "advancedSettingsCount": "高级设置 ({{count}})", "advancedCount": "高级选项 ({{count}})", @@ -1495,7 +1530,35 @@ "manual": "手动参数", "inherit": "继承摄像头设置", "selectPreset": "选择预设", - "manualPlaceholder": "输入 FFmpeg 参数" + "manualPlaceholder": "输入 FFmpeg 参数", + "none": "无", + "useGlobalSetting": "继承全局设置", + "presetLabels": { + "preset-rpi-64-h264": "树莓派(H.264)", + "preset-rpi-64-h265": "树莓派(H.265)", + "preset-vaapi": "VAAPI (Intel/AMD GPU)", + "preset-intel-qsv-h264": "Intel QuickSync (H.264)", + "preset-intel-qsv-h265": "Intel QuickSync (H.265)", + "preset-nvidia": "NVIDIA GPU", + "preset-jetson-h264": "NVIDIA Jetson (H.264)", + "preset-jetson-h265": "NVIDIA Jetson (H.265)", + "preset-rkmpp": "瑞芯微 RKMPP", + "preset-http-jpeg-generic": "HTTP JPEG(通用)", + "preset-http-mjpeg-generic": "HTTP MJPEG(通用)", + "preset-http-reolink": "HTTP - Reolink 摄像头", + "preset-rtmp-generic": "RTMP(通用)", + "preset-rtsp-generic": "RTSP(通用)", + "preset-rtsp-restream": "RTSP - 从 go2rtc 转流", + "preset-rtsp-restream-low-latency": "RTSP - 从 go2rtc 转流(低延迟)", + "preset-rtsp-udp": "RTSP - UDP协议", + "preset-rtsp-blue-iris": "RTSP - Blue Iris", + "preset-record-generic": "录制(通用,无音频)", + "preset-record-generic-audio-copy": "录制(通用,不转码音频)", + "preset-record-generic-audio-aac": "录制(通用并将音频转码为 AAC)", + "preset-record-mjpeg": "录制 - MJPEG 流摄像头", + "preset-record-jpeg": "录制 - JPEG 流摄像头", + "preset-record-ubiquiti": "录制 - 优必飞摄像头" + } }, "cameraInputs": { "itemTitle": "视频流 {{index}}" @@ -1512,7 +1575,8 @@ "keyDuplicate": "检测器名称已存在。", "noSchema": "没有可用的检测器架构。", "none": "未配置检测器实例。", - "add": "添加检测器" + "add": "添加检测器", + "addCustomKey": "添加自定义键(Key)" }, "record": { "title": "录制设置" @@ -1574,7 +1638,24 @@ "timestamp_style": { "title": "时间戳设置" }, - "searchPlaceholder": "搜索…" + "searchPlaceholder": "搜索…", + "genaiRoles": { + "options": { + "embeddings": "嵌入(Embedding)", + "vision": "视觉(Vision)", + "tools": "工具(Tools)" + } + }, + "semanticSearchModel": { + "placeholder": "选择模型…", + "builtIn": "内置模型", + "genaiProviders": "生成式 AI 服务" + }, + "reviewLabels": { + "summary": "已选择 {{count}} 个标签", + "empty": "暂无可用标签" + }, + "addCustomLabel": "添加自定义标签…" }, "cameraConfig": { "title": "摄像头配置", @@ -1631,7 +1712,9 @@ "review_thumbnails": "核查缩略图", "previews": "预览", "exports": "导出", - "recordings": "录像" + "recordings": "录像", + "verbose": "详细模式", + "verboseDesc": "将所有孤立文件的完整清单写入硬盘以供核查。" }, "regionGrid": { "title": "区域网格", @@ -1668,5 +1751,140 @@ "unsavedChanges": "您有未保存的更改", "confirmReset": "确认重置", "resetToDefaultDescription": "这将把此部分的所有设置重置为默认值。此操作无法撤销。", - "resetToGlobalDescription": "这将把此部分的设置重置为全局默认值。此操作无法撤销。" + "resetToGlobalDescription": "这将把此部分的设置重置为全局默认值。此操作无法撤销。", + "button": { + "overriddenGlobal": "已覆盖全局通用配置", + "overriddenGlobalTooltip": "当前摄像头配置,将优先覆盖全局通用设置", + "overriddenBaseConfigTooltip": "当前 {{profile}} 配置模板会覆盖本节所有设置", + "overriddenBaseConfig": "已覆盖默认配置" + }, + "profiles": { + "title": "配置模板", + "activeProfile": "激活配置模板", + "noActiveProfile": "无激活的配置模板", + "active": "激活", + "activated": "配置模板 {{profile}} 已激活", + "activateFailed": "配置模板设置失败", + "deactivated": "配置模板已停用", + "noProfiles": "未定义任何配置模板。", + "noOverrides": "无覆盖项", + "cameraCount_other": "{{count}} 个摄像头", + "baseConfig": "基础配置", + "addProfile": "添加配置模板", + "newProfile": "新配置模板", + "profileNamePlaceholder": "例如:布防、外出、夜间模式", + "friendlyNameLabel": "配置模板名称", + "profileIdLabel": "配置模板 ID", + "profileIdDescription": "用于配置和自动化的内部标识符", + "nameInvalid": "仅允许使用小写字母、数字和下划线", + "nameDuplicate": "已存在同名配置模板", + "columnCamera": "摄像头", + "columnOverrides": "配置文件覆盖", + "error": { + "mustBeAtLeastTwoCharacters": "至少需要 2 个字符", + "mustNotContainPeriod": "不得包含英文句号(\".\")", + "alreadyExists": "已存在使用此 ID 的配置文件" + }, + "renameProfile": "重命名配置文件", + "renameSuccess": "已将配置文件重命名为 “{{profile}}”", + "deleteProfile": "删除配置文件", + "deleteProfileConfirm": "确定要为所有摄像头删除配置文件“{{profile}}”吗?该步骤无法撤销。", + "deleteSuccess": "配置文件“{{profile}}”已删除", + "createSuccess": "配置文件“{{profile}}”已创建", + "removeOverride": "移除配置文件覆盖", + "deleteSection": "删除节点覆盖", + "deleteSectionConfirm": "是否要移除摄像机 {{camera}} 上针对配置文件 {{profile}} 的 {{section}} 覆盖设置?", + "deleteSectionSuccess": "已移除 {{profile}} 的 {{section}} 覆盖设置", + "enableSwitch": "开启配置文件", + "enabledDescription": "配置文件功能已启用。请在下方创建新的配置文件,进入摄像头配置页面进行修改并保存,修改即可生效。", + "disabledDescription": "配置文件功能可以让你创建一组带名称的摄像头自定义参数(比如布防、离家、夜间模式),并随时切换启用。" + }, + "timestampPosition": { + "tl": "左上角", + "tr": "右上角", + "bl": "左下角", + "br": "右下角" + }, + "go2rtcStreams": { + "title": "go2rtc 视频流", + "description": "管理用于摄像头转流的 go2rtc 流配置。每个视频流包含一个名称以及一个或多个源地址 URL。", + "addStream": "添加视频流", + "addStreamDesc": "为新的视频流输入一个名称,该名称将用于在摄像头配置中引用该视频流。", + "addUrl": "添加 URL 地址", + "streamName": "视频流名称", + "streamNamePlaceholder": "例如:front_door,此处只能使用英文", + "streamUrlPlaceholder": "例如:rtsp://user:pass@192.168.1.100/stream", + "deleteStream": "删除视频流", + "deleteStreamConfirm": "确定要删除视频流 “{{streamName}}” 吗?引用该视频流的摄像头可能会停止工作。", + "noStreams": "未配置任何 go2rtc 流。请添加一个视频流以开始使用。", + "validation": { + "nameRequired": "视频流名称为必填", + "nameDuplicate": "已存在同名的视频流", + "nameInvalid": "视频流名称只能使用字母、数字、下划线和连字符", + "urlRequired": "至少需要填写一个 URL 地址" + }, + "renameStream": "重命名视频流", + "renameStreamDesc": "为此视频流输入新名称。重命名视频流可能会导致通过名称引用它的摄像头或其他流无法正常工作。", + "newStreamName": "新视频流名称", + "ffmpeg": { + "useFfmpegModule": "使用兼容模式(ffmpeg)", + "video": "视频", + "audio": "音频", + "hardware": "硬件加速", + "videoCopy": "直接复制", + "videoH264": "转码为 H.264", + "videoH265": "转码为 H.265", + "videoExclude": "排除", + "audioCopy": "直接复制", + "audioAac": "转码为 AAC", + "audioOpus": "转码为 Opus", + "audioPcmu": "转码为 PCM μ-law", + "audioPcma": "转码为 PCM A-law", + "audioPcm": "转码为 PCM", + "audioMp3": "转码为 MP3", + "audioExclude": "排除", + "hardwareNone": "无硬件加速", + "hardwareAuto": "自动选择硬件加速" + } + }, + "onvif": { + "profileAuto": "自动", + "profileLoading": "正在加载配置文件…" + }, + "configMessages": { + "review": { + "recordDisabled": "录制已禁用,不会生成核查记录项。", + "detectDisabled": "目标检测已禁用。核查记录需要依靠检测到的目标来对警报和检测事件进行分类。", + "allNonAlertDetections": "所有非警报类活动都将被记录为检测事件。" + }, + "lpr": { + "vehicleNotTracked": "车牌识别需要先开启对 “汽车” 或 “摩托车” 的目标追踪。", + "globalDisabled": "车牌识别未在全局开启。请在全局设置中开启该功能,才能在摄像头下单独配置车牌识别是否开启。" + }, + "audio": { + "noAudioRole": "暂无任何流已开启音频(audio)功能(role)。必须在视频流上启用音频功能,音频检测才能正常工作。" + }, + "audioTranscription": { + "audioDetectionDisabled": "该摄像头未开启音频检测功能。音频转录需要先开启音频检测。" + }, + "detect": { + "fpsGreaterThanFive": "不建议设置检测帧率高于 5。" + }, + "faceRecognition": { + "globalDisabled": "人脸识别未在全局开启。请在全局设置中开启该功能,才能在摄像头下单独配置人脸识别是否开启。", + "personNotTracked": "人脸识别需要检测到 “人”(person) 后才能工作。请确保 “person” 已添加到目标追踪列表中。" + }, + "record": { + "noRecordRole": "暂无任何视频流已配置录制功能,录制功能将无法正常工作。" + }, + "birdseye": { + "objectsModeDetectDisabled": "鸟瞰图已设置为 “目标” 模式,但此摄像头未开启目标检测。该摄像头将不会显示在鸟瞰画面中。" + }, + "snapshots": { + "detectDisabled": "目标检测已禁用。快照是根据追踪到的目标生成的,因此将不会创建快照。" + }, + "detectors": { + "mixedTypes": "所有检测器必须为同一类型。若要更换为其他类型,请先移除现有的检测器。" + } + } } diff --git a/web/public/locales/zh-CN/views/system.json b/web/public/locales/zh-CN/views/system.json index 805560be1..6e406674a 100644 --- a/web/public/locales/zh-CN/views/system.json +++ b/web/public/locales/zh-CN/views/system.json @@ -59,7 +59,9 @@ "count": "{{count}} 条消息", "expanded": { "payload": "Payload" - } + }, + "count_one": "{{count}} 条消息", + "count_other": "{{count}} 条消息" } }, "general": { @@ -110,7 +112,8 @@ "description": "这是 Intel 的 GPU 状态报告工具(intel_gpu_top)的已知问题:该工具会失效并反复返回 GPU 使用率为 0%,即使在硬件加速和目标检测已在 (i)GPU 上正常运行的情况下也是如此,这并不是 Frigate 的 bug。你可以通过重启主机来临时修复该问题,并确认 GPU 正常工作。该问题并不会影响性能。" }, "gpuTemperature": "GPU 温度", - "npuTemperature": "NPU 温度" + "npuTemperature": "NPU 温度", + "gpuCompute": "GPU 计算 / 编码" }, "otherProcesses": { "title": "其他进程", @@ -189,7 +192,8 @@ "cameraDetectionsPerSecond": "{{camName}} 每秒检测数", "cameraSkippedDetectionsPerSecond": "{{camName}} 每秒跳过检测数", "cameraFfmpeg": "{{camName}} FFmpeg", - "cameraFramesPerSecond": "{{camName}} 每秒帧数" + "cameraFramesPerSecond": "{{camName}} 每秒帧数", + "cameraGpu": "{{camName}} GPU" }, "toast": { "success": {