diff --git a/README.md b/README.md index 5b67c86c3..b15bb5c2f 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ # Frigate - NVR With Realtime Object Detection for IP Cameras +\[English\] | [简体中文](https://github.com/blakeblackshear/frigate/README_CN.md) + A complete and local NVR designed for [Home Assistant](https://www.home-assistant.io) with AI object detection. Uses OpenCV and Tensorflow to perform realtime object detection locally for IP cameras. Use of a [Google Coral Accelerator](https://coral.ai/products/) is optional, but highly recommended. The Coral will outperform even the best CPUs and can process 100+ FPS with very little overhead. diff --git a/README_CN.md b/README_CN.md new file mode 100644 index 000000000..6f4b5c4ed --- /dev/null +++ b/README_CN.md @@ -0,0 +1,52 @@ +

+ logo +

+ +# Frigate - 一个具有实时目标检测的本地NVR + +[English](https://github.com/blakeblackshear/frigate) | \[简体中文\] + +一个完整的本地网络视频录像机(NVR),专为[Home Assistant](https://www.home-assistant.io)设计,具备AI物体检测功能。使用OpenCV和TensorFlow在本地为IP摄像头执行实时物体检测。 + +强烈推荐使用可选配件:[Google Coral加速器](https://coral.ai/products/)。在该场景下,Coral的性能甚至超过目前的顶级CPU,并且可以以极低的电力开销轻松处理100 以上的画面帧。 + +- 通过[自定义组件](https://github.com/blakeblackshear/frigate-hass-integration)与Home Assistant紧密集成 +- 设计上通过仅在必要时和必要地点寻找物体,最大限度地减少资源使用并最大化性能 +- 大量利用多进程处理,强调实时性而非处理每一帧 +- 使用非常低开销的运动检测来确定运行物体检测的位置 +- 使用TensorFlow进行物体检测,运行在单独的进程中以达到最大FPS +- 通过MQTT进行通信,便于集成到其他系统中 +- 根据检测到的物体设置保留时间进行视频录制 +- 24/7全天候录制 +- 通过RTSP重新流传输以减少摄像头的连接数 +- 支持WebRTC和MSE,实现低延迟的实时观看 + +## 文档(英文) + +你可以在这里查看文档 https://docs.frigate.video + +## 赞助 + +如果您想通过捐赠支持开发,请使用 [Github Sponsors](https://github.com/sponsors/blakeblackshear)。 + +## 截图 + +### 实时监控面板 +
+实时监控面板 +
+ +### 简单的审查工作流程 +
+简单的审查工作流程 +
+ +### 多摄像头可按时间轴查看 +
+多摄像头可按时间轴查看 +
+ +### 内置遮罩和区域编辑器 +
+内置遮罩和区域编辑器 +
diff --git a/web/public/locales/en/views/system.json b/web/public/locales/en/views/system.json index 65b2db663..77516f3e1 100644 --- a/web/public/locales/en/views/system.json +++ b/web/public/locales/en/views/system.json @@ -145,6 +145,12 @@ "reindexingEmbeddings": "Reindexing embeddings ({{processed}}% complete)" }, "features": { - "title": "Features" + "title": "Features", + "embeddings": { + "image_embedding_speed": "Image Embedding Speed", + "face_embedding_speed": "Face Embedding Speed", + "plate_recognition_speed": "Plate Recognition Speed", + "text_embedding_speed": "Text Embedding Speed" + } } } diff --git a/web/public/locales/zh-CN/audio.json b/web/public/locales/zh-CN/audio.json index f9438a747..2c65847e3 100644 --- a/web/public/locales/zh-CN/audio.json +++ b/web/public/locales/zh-CN/audio.json @@ -1,8 +1,429 @@ { - "crying": "哭泣", - "laughter": "笑声", - "scream": "尖叫", "speech": "谈话", + "babbling": "喋喋不休", "yell": "大喊", - "fire_alarm": "火灾警报器" + "bellow": "吼叫", + "whoop": "欢呼", + "whispering": "耳语", + "laughter": "笑声", + "snicker": "窃笑", + "crying": "哭泣", + "sigh": "叹息", + "singing": "唱歌", + "choir": "合唱", + "yodeling": "山歌", + "chant": "吟唱", + "mantra": "咒语", + "child_singing": "儿童歌唱", + "synthetic_singing": "合成歌声", + "rapping": "说唱", + "humming": "哼唱", + "groan": "呻吟", + "grunt": "咕哝", + "whistling": "口哨", + "breathing": "呼吸", + "wheeze": "喘息", + "snoring": "打鼾", + "gasp": "倒抽气", + "pant": "喘气", + "snort": "哼声", + "cough": "咳嗽", + "throat_clearing": "清嗓子", + "sneeze": "打喷嚏", + "sniff": "抽鼻子", + "run": "跑步", + "shuffle": "拖步", + "footsteps": "脚步声", + "chewing": "咀嚼", + "biting": "咬", + "gargling": "漱口", + "stomach_rumble": "肚子咕噜", + "burping": "打嗝", + "hiccup": "打嗝", + "fart": "放屁", + "hands": "手", + "finger_snapping": "打响指", + "clapping": "鼓掌", + "heartbeat": "心跳", + "heart_murmur": "心脏杂音", + "cheering": "欢呼", + "applause": "掌声", + "chatter": "闲聊", + "crowd": "人群", + "children_playing": "儿童玩耍", + "animal": "动物", + "pets": "宠物", + "dog": "狗", + "bark": "吠叫", + "yip": "吠叫", + "howl": "嚎叫", + "bow_wow": "汪汪", + "growling": "咆哮", + "whimper_dog": "狗呜咽", + "cat": "猫", + "purr": "咕噜", + "meow": "喵喵", + "hiss": "嘶嘶声", + "caterwaul": "猫叫春", + "livestock": "牲畜", + "horse": "马", + "clip_clop": "蹄声", + "neigh": "嘶鸣", + "cattle": "牛", + "moo": "哞哞", + "cowbell": "牛铃", + "pig": "猪", + "oink": "哼哼", + "goat": "山羊", + "bleat": "咩咩", + "sheep": "绵羊", + "fowl": "家禽", + "chicken": "鸡", + "cluck": "咯咯", + "cock_a_doodle_doo": "喔喔", + "turkey": "火鸡", + "gobble": "咯咯", + "duck": "鸭子", + "quack": "嘎嘎", + "goose": "鹅", + "honk": "鸣笛/鹅叫声", + "wild_animals": "野生动物", + "roaring_cats": "吼叫的猫科动物", + "roar": "吼叫", + "bird": "鸟", + "chirp": "啾啾", + "squawk": "啼叫", + "pigeon": "鸽子", + "coo": "咕咕", + "crow": "乌鸦", + "caw": "呱呱", + "owl": "猫头鹰", + "hoot": "呜呜", + "flapping_wings": "翅膀拍打", + "dogs": "狗群", + "rats": "老鼠", + "mouse": "老鼠", + "patter": "啪嗒声", + "insect": "昆虫", + "cricket": "蟋蟀", + "mosquito": "蚊子", + "fly": "苍蝇", + "buzz": "嗡嗡", + "frog": "青蛙", + "croak": "呱呱", + "snake": "蛇", + "rattle": "响尾", + "whale_vocalization": "鲸鱼叫声", + "music": "音乐", + "musical_instrument": "乐器", + "plucked_string_instrument": "弹拨乐器", + "guitar": "吉他", + "electric_guitar": "电吉他", + "bass_guitar": "贝斯", + "acoustic_guitar": "原声吉他", + "steel_guitar": "钢弦吉他", + "tapping": "敲击", + "strum": "扫弦", + "banjo": "班卓琴", + "sitar": "西塔琴", + "mandolin": "曼陀林", + "zither": "古筝", + "ukulele": "尤克里里", + "keyboard": "键盘", + "piano": "钢琴", + "electric_piano": "电钢琴", + "organ": "风琴", + "electronic_organ": "电子琴", + "hammond_organ": "哈蒙德风琴", + "synthesizer": "合成器", + "sampler": "采样器", + "harpsichord": "大键琴", + "percussion": "打击乐器", + "drum_kit": "架子鼓", + "drum_machine": "鼓机", + "drum": "鼓", + "snare_drum": "军鼓", + "rimshot": "鼓边击", + "drum_roll": "滚鼓", + "bass_drum": "大鼓", + "timpani": "定音鼓", + "tabla": "塔布拉鼓", + "cymbal": "钹", + "hi_hat": "踩镲", + "wood_block": "木鱼", + "tambourine": "铃鼓", + "maraca": "沙锤", + "gong": "锣", + "tubular_bells": "管钟", + "mallet_percussion": "槌击打击乐器", + "marimba": "马林巴", + "glockenspiel": "钟琴", + "vibraphone": "颤音琴", + "steelpan": "钢鼓", + "orchestra": "管弦乐队", + "brass_instrument": "铜管乐器", + "french_horn": "圆号", + "trumpet": "小号", + "trombone": "长号", + "bowed_string_instrument": "弓弦乐器", + "string_section": "弦乐组", + "violin": "小提琴", + "pizzicato": "拨弦", + "cello": "大提琴", + "double_bass": "低音提琴", + "wind_instrument": "管乐器", + "flute": "长笛", + "saxophone": "萨克斯", + "clarinet": "单簧管", + "harp": "竖琴", + "bell": "铃", + "church_bell": "教堂钟", + "jingle_bell": "铃铛", + "bicycle_bell": "自行车铃", + "tuning_fork": "音叉", + "chime": "风铃", + "wind_chime": "风铃", + "harmonica": "口琴", + "accordion": "手风琴", + "bagpipes": "风笛", + "didgeridoo": "迪吉里杜管", + "theremin": "特雷门琴", + "singing_bowl": "颂钵", + "scratching": "刮擦声", + "pop_music": "流行音乐", + "hip_hop_music": "嘻哈音乐", + "beatboxing": "人声节拍", + "rock_music": "摇滚音乐", + "heavy_metal": "重金属", + "punk_rock": "朋克摇滚", + "grunge": "垃圾摇滚", + "progressive_rock": "前卫摇滚", + "rock_and_roll": "摇滚乐", + "psychedelic_rock": "迷幻摇滚", + "rhythm_and_blues": "节奏布鲁斯", + "soul_music": "灵魂乐", + "reggae": "雷鬼", + "country": "乡村音乐", + "swing_music": "摇摆乐", + "bluegrass": "蓝草音乐", + "funk": "放克", + "folk_music": "民谣", + "middle_eastern_music": "中东音乐", + "jazz": "爵士乐", + "disco": "迪斯科", + "classical_music": "古典音乐", + "opera": "歌剧", + "electronic_music": "电子音乐", + "house_music": "浩室音乐", + "techno": "科技舞曲", + "dubstep": "回响贝斯", + "drum_and_bass": "鼓打贝斯", + "electronica": "电子乐", + "electronic_dance_music": "电子舞曲", + "ambient_music": "环境音乐", + "trance_music": "迷幻舞曲", + "music_of_latin_america": "拉丁美洲音乐", + "salsa_music": "萨尔萨", + "flamenco": "弗拉门戈", + "blues": "蓝调", + "music_for_children": "儿童音乐", + "new-age_music": "新世纪音乐", + "vocal_music": "声乐", + "a_capella": "无伴奏合唱", + "music_of_africa": "非洲音乐", + "afrobeat": "非洲节拍", + "christian_music": "基督教音乐", + "gospel_music": "福音音乐", + "music_of_asia": "亚洲音乐", + "carnatic_music": "卡纳提克音乐", + "music_of_bollywood": "宝莱坞音乐", + "ska": "斯卡", + "traditional_music": "传统音乐", + "independent_music": "独立音乐", + "song": "歌曲", + "background_music": "背景音乐", + "theme_music": "主题音乐", + "jingle": "广告歌", + "soundtrack_music": "配乐", + "lullaby": "摇篮曲", + "video_game_music": "电子游戏音乐", + "christmas_music": "圣诞音乐", + "dance_music": "舞曲", + "wedding_music": "婚礼音乐", + "happy_music": "欢快音乐", + "sad_music": "悲伤音乐", + "tender_music": "温柔音乐", + "exciting_music": "激动音乐", + "angry_music": "愤怒音乐", + "scary_music": "恐怖音乐", + "wind": "风", + "rustling_leaves": "树叶沙沙声", + "wind_noise": "风声", + "thunderstorm": "雷暴", + "thunder": "雷声", + "water": "水", + "rain": "雨", + "raindrop": "雨滴", + "rain_on_surface": "雨打表面", + "stream": "溪流", + "waterfall": "瀑布", + "ocean": "海洋", + "waves": "波浪", + "steam": "蒸汽", + "gurgling": "汩汩声", + "fire": "火", + "crackle": "噼啪声", + "vehicle": "车辆", + "boat": "船", + "sailboat": "帆船", + "rowboat": "划艇", + "motorboat": "摩托艇", + "ship": "轮船", + "motor_vehicle": "机动车", + "car": "汽车", + "toot": "鸣笛", + "car_alarm": "汽车警报", + "power_windows": "电动车窗", + "skidding": "轮胎打滑", + "tire_squeal": "轮胎尖叫", + "car_passing_by": "汽车驶过", + "race_car": "赛车", + "truck": "卡车", + "air_brake": "气闸", + "air_horn": "气笛", + "reversing_beeps": "倒车提示音", + "ice_cream_truck": "冰淇淋车", + "bus": "公共汽车", + "emergency_vehicle": "应急车辆", + "police_car": "警车", + "ambulance": "救护车", + "fire_engine": "消防车", + "motorcycle": "摩托车", + "traffic_noise": "交通噪音", + "rail_transport": "铁路运输", + "train": "火车", + "train_whistle": "火车汽笛", + "train_horn": "火车鸣笛", + "railroad_car": "铁路车厢", + "train_wheels_squealing": "火车轮子尖叫", + "subway": "地铁", + "aircraft": "飞行器", + "aircraft_engine": "飞机引擎", + "jet_engine": "喷气引擎", + "propeller": "螺旋桨", + "helicopter": "直升机", + "fixed-wing_aircraft": "固定翼飞机", + "bicycle": "自行车", + "skateboard": "滑板", + "engine": "引擎", + "light_engine": "轻型引擎", + "dental_drill's_drill": "牙科钻", + "lawn_mower": "割草机", + "chainsaw": "电锯", + "medium_engine": "中型引擎", + "heavy_engine": "重型引擎", + "engine_knocking": "引擎敲击", + "engine_starting": "引擎启动", + "idling": "怠速", + "accelerating": "加速", + "door": "门", + "doorbell": "门铃", + "ding-dong": "叮咚", + "sliding_door": "滑动门", + "slam": "猛关", + "knock": "敲门", + "tap": "轻敲", + "squeak": "吱吱声", + "cupboard_open_or_close": "橱柜开关", + "drawer_open_or_close": "抽屉开关", + "dishes": "餐具", + "cutlery": "刀叉", + "chopping": "切菜", + "frying": "煎炸", + "microwave_oven": "微波炉", + "blender": "搅拌机", + "water_tap": "水龙头", + "sink": "水槽", + "bathtub": "浴缸", + "hair_dryer": "吹风机", + "toilet_flush": "马桶冲水", + "toothbrush": "牙刷", + "electric_toothbrush": "电动牙刷", + "vacuum_cleaner": "吸尘器", + "zipper": "拉链", + "keys_jangling": "钥匙叮当", + "coin": "硬币", + "scissors": "剪刀", + "electric_shaver": "电动剃须刀", + "shuffling_cards": "洗牌", + "typing": "打字", + "typewriter": "打字机", + "computer_keyboard": "电脑键盘", + "writing": "书写", + "alarm": "警报", + "telephone": "电话", + "telephone_bell_ringing": "电话铃声", + "ringtone": "手机铃声", + "telephone_dialing": "电话拨号", + "dial_tone": "拨号音", + "busy_signal": "忙音", + "alarm_clock": "闹钟", + "siren": "警笛", + "civil_defense_siren": "防空警报", + "buzzer": "蜂鸣器", + "smoke_detector": "烟雾探测器", + "fire_alarm": "火灾警报器", + "foghorn": "雾笛", + "whistle": "哨子", + "steam_whistle": "蒸汽汽笛", + "mechanisms": "机械装置", + "ratchet": "棘轮", + "clock": "时钟", + "tick": "滴答", + "tick-tock": "滴答滴答", + "gears": "齿轮", + "pulleys": "滑轮", + "sewing_machine": "缝纫机", + "mechanical_fan": "机械风扇", + "air_conditioning": "空调", + "cash_register": "收银机", + "printer": "打印机", + "camera": "相机", + "single-lens_reflex_camera": "单反相机", + "tools": "工具", + "hammer": "锤子", + "jackhammer": "风镐", + "sawing": "锯", + "filing": "锉", + "sanding": "砂磨", + "power_tool": "电动工具", + "drill": "电钻", + "explosion": "爆炸", + "gunshot": "枪声", + "machine_gun": "机关枪", + "fusillade": "齐射", + "artillery_fire": "炮火", + "cap_gun": "玩具枪", + "fireworks": "烟花", + "firecracker": "鞭炮", + "burst": "爆裂", + "eruption": "爆发", + "boom": "轰隆", + "wood": "木头", + "chop": "砍", + "splinter": "碎裂", + "crack": "破裂", + "glass": "玻璃", + "chink": "叮当", + "shatter": "粉碎", + "silence": "寂静", + "sound_effect": "音效", + "environmental_noise": "环境噪音", + "static": "静电噪音", + "white_noise": "白噪音", + "pink_noise": "粉红噪音", + "television": "电视", + "radio": "收音机", + "field_recording": "实地录音", + "scream": "尖叫" } diff --git a/web/public/locales/zh-CN/common.json b/web/public/locales/zh-CN/common.json index ef56a0c52..0da7064b1 100644 --- a/web/public/locales/zh-CN/common.json +++ b/web/public/locales/zh-CN/common.json @@ -20,8 +20,8 @@ "1hour": "1 小时", "12hours": "12 小时", "24hours": "24 小时", - "pm": "上午", - "am": "下午", + "pm": "下午", + "am": "上午", "yr": "{{time}}年", "year": "{{time}}年", "mo": "{{time}}月", @@ -88,7 +88,7 @@ "back": "返回", "history": "历史", "fullscreen": "全屏", - "exitFullscreen": "全屏", + "exitFullscreen": "退出全屏", "pictureInPicture": "画中画", "on": "开", "off": "关", @@ -157,7 +157,7 @@ "review": "回放", "explore": "探测", "export": "导出", - "uiPlayground": "UI Playground", + "uiPlayground": "UI 演示", "faceLibrary": "人脸管理", "user": { "account": "账号", diff --git a/web/public/locales/zh-CN/components/dialog.json b/web/public/locales/zh-CN/components/dialog.json index da7786483..92c574f12 100644 --- a/web/public/locales/zh-CN/components/dialog.json +++ b/web/public/locales/zh-CN/components/dialog.json @@ -71,7 +71,7 @@ "streaming": { "label": "视频流", "restreaming": { - "disabled": "重新流式传输未启用。", + "disabled": "此摄像头未启用视频流转发功能。", "desc": { "title": "为此摄像头设置 go2rtc,以获取额外的实时预览选项和音频支持。", "readTheDocumentation": "阅读文档(英文) " diff --git a/web/public/locales/zh-CN/components/input.json b/web/public/locales/zh-CN/components/input.json index 006aca13e..767aea545 100644 --- a/web/public/locales/zh-CN/components/input.json +++ b/web/public/locales/zh-CN/components/input.json @@ -3,7 +3,7 @@ "downloadVideo": { "label": "下载视频", "toast": { - "success": "下载成功" + "success": "您的回放视频已开始下载。" } } } diff --git a/web/public/locales/zh-CN/objects.json b/web/public/locales/zh-CN/objects.json index 6c0fe7fbd..80a7893ae 100644 --- a/web/public/locales/zh-CN/objects.json +++ b/web/public/locales/zh-CN/objects.json @@ -100,5 +100,21 @@ "raccoon": "浣熊", "robot_lawnmower": "自动割草机", "waste_bin": "垃圾桶", - "on_demand": "手动" + "on_demand": "手动", + "face": "人脸", + "license_plate": "车牌", + "package": "包裹", + "bbq_grill": "烧烤架", + "amazon": "亚马逊", + "usps": "美国邮政", + "ups": "UPS", + "fedex": "联邦快递", + "dhl": "DHL", + "an_post": "爱尔兰邮政", + "purolator": "普罗莱特", + "postnl": "荷兰邮政", + "nzpost": "新西兰邮政", + "postnord": "北欧邮政", + "gls": "GLS", + "dpd": "DPD" } diff --git a/web/public/locales/zh-CN/views/explore.json b/web/public/locales/zh-CN/views/explore.json index 9e345d3a2..e855cb0d9 100644 --- a/web/public/locales/zh-CN/views/explore.json +++ b/web/public/locales/zh-CN/views/explore.json @@ -29,7 +29,7 @@ "error": "发生错误。请检查Frigate日志。" } }, - "trackedObjectDetails": "探测对象详情", + "trackedObjectDetails": "跟踪对象详情", "type": { "details": "详情", "snapshot": "快照", @@ -169,7 +169,7 @@ "desc": "删除此跟踪对象将移除快照、所有已保存的嵌入数据以及任何关联的对象生命周期条目。但在历史视图中的录制视频不会被删除。

你确定要继续删除吗?" } }, - "noTrackedObjects": "找不到探测的对象", + "noTrackedObjects": "未找到跟踪对象", "fetchingTrackedObjectsFailed": "获取跟踪对象失败:{{errorMessage}}", "trackedObjectsCount": "{{count}} 个跟踪对象", "searchResult": { diff --git a/web/public/locales/zh-CN/views/live.json b/web/public/locales/zh-CN/views/live.json index bfaf0ea42..a68518547 100644 --- a/web/public/locales/zh-CN/views/live.json +++ b/web/public/locales/zh-CN/views/live.json @@ -79,14 +79,14 @@ }, "manualRecording": { "title": "按需录制", - "tips": "根据此摄像机的录制保留设置,手动启动事件。", + "tips": "根据此摄像头的录制保留设置,手动启动事件。", "playInBackground": { "label": "后台播放", "desc": "启用此选项可在播放器隐藏时继续视频流播放。" }, "showStats": { "label": "显示统计信息", - "desc": "启用此选项可在摄像机画面上叠加显示视频流统计信息。" + "desc": "启用此选项可在摄像头画面上叠加显示视频流统计信息。" }, "debugView": "调试视图", "start": "开始手动按需录制", @@ -107,7 +107,7 @@ "title": "视频流", "audio": { "tips": { - "title": "音频必须从摄像机输出并在 go2rtc 中配置为此视频流使用。", + "title": "音频必须从摄像头输出并在 go2rtc 中配置为此视频流使用。", "documentation": "阅读文档 " }, "available": "此视频流支持音频", @@ -130,7 +130,7 @@ }, "cameraSettings": { "title": "{{camera}} 设置", - "cameraEnabled": "摄像机已启用", + "cameraEnabled": "摄像头已启用", "objectDetection": "对象检测", "recording": "录制", "snapshots": "快照", diff --git a/web/public/locales/zh-CN/views/search.json b/web/public/locales/zh-CN/views/search.json index bd98bbabb..d55a611b9 100644 --- a/web/public/locales/zh-CN/views/search.json +++ b/web/public/locales/zh-CN/views/search.json @@ -34,12 +34,12 @@ }, "toast": { "error": { - "beforeDateBeLaterAfter": "“之前”日期必须晚于“之后”日期。", - "afterDatebeEarlierBefore": "“之后”日期必须早于“之前”日期。", - "minScoreMustBeLessOrEqualMaxScore": "最小分值 必须小于或等于 最大分值。", - "maxScoreMustBeGreaterOrEqualMinScore": "最大分值 必须大于或等于 最小分值", - "minSpeedMustBeLessOrEqualMaxSpeed": "最低速度 必须小于或等于 最高速度", - "maxSpeedMustBeGreaterOrEqualMinSpeed": "最高速度 必须大于或等于 最低速度" + "beforeDateBeLaterAfter": "结束日期必须晚于开始日期。", + "afterDatebeEarlierBefore": "开始日期必须早于结束日期。", + "minScoreMustBeLessOrEqualMaxScore": "最低分数必须小于或等于最高分数。", + "maxScoreMustBeGreaterOrEqualMinScore": "最高分数必须大于或等于最低分数。", + "minSpeedMustBeLessOrEqualMaxSpeed": "最低速度必须小于或等于最高速度。", + "maxSpeedMustBeGreaterOrEqualMinSpeed": "最高速度必须大于或等于最低速度。" } }, "tips": { diff --git a/web/public/locales/zh-CN/views/settings.json b/web/public/locales/zh-CN/views/settings.json index 0fc96128f..8fcfb869e 100644 --- a/web/public/locales/zh-CN/views/settings.json +++ b/web/public/locales/zh-CN/views/settings.json @@ -321,7 +321,7 @@ }, "improveContrast": { "title": "提高对比度", - "desc": "提高较暗场景的对比度。默认值:开启" + "desc": "提高较暗场景的对比度。默认值:启用" }, "toast": { "success": "运动设置已保存。" diff --git a/web/public/locales/zh-CN/views/system.json b/web/public/locales/zh-CN/views/system.json index 20fbeee83..01251f3c5 100644 --- a/web/public/locales/zh-CN/views/system.json +++ b/web/public/locales/zh-CN/views/system.json @@ -145,6 +145,12 @@ "reindexingEmbeddings": "正在重新索引嵌入(已完成 {{processed}}%)" }, "features": { - "title": "功能" + "title": "功能", + "embeddings": { + "image_embedding_speed": "图像特征提取速度", + "face_embedding_speed": "人脸特征提取速度", + "plate_recognition_speed": "车牌识别速度", + "text_embedding_speed": "文本编码速度" + } } } diff --git a/web/src/views/system/FeatureMetrics.tsx b/web/src/views/system/FeatureMetrics.tsx index 0f6096a7f..c5b6e1454 100644 --- a/web/src/views/system/FeatureMetrics.tsx +++ b/web/src/views/system/FeatureMetrics.tsx @@ -76,14 +76,14 @@ export default function FeatureMetrics({ const key = rawKey.replaceAll("_", " "); if (!(key in series)) { - series[key] = { name: key, data: [] }; + series[key] = { name: t("features.embeddings." + rawKey), data: [] }; } series[key].data.push({ x: statsIdx + 1, y: stat }); }); }); return Object.values(series); - }, [statsHistory]); + }, [statsHistory, t]); return ( <>