chinese i18n fix (#17190)

* fix: fix dialog some key capitalization

* chore: remove audio duplicate key. (i18next can't use it! maybe need change key name? )

* feat: add chinese missing keys.
fix: fix some keys error

* feat: add chinese readme file

* feat: add system feature pages embeddings i18n keys

* fix: fix audio file keys wrong
This commit is contained in:
GuoQing Liu 2025-03-17 22:01:07 +08:00 committed by GitHub
parent 03da70cb81
commit 8f4e86e476
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
14 changed files with 531 additions and 28 deletions

View File

@ -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.

52
README_CN.md Normal file
View File

@ -0,0 +1,52 @@
<p align="center">
<img align="center" alt="logo" src="docs/static/img/frigate.png">
</p>
# 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)。
## 截图
### 实时监控面板
<div>
<img width="800" alt="实时监控面板" src="https://github.com/blakeblackshear/frigate/assets/569905/5e713cb9-9db5-41dc-947a-6937c3bc376e">
</div>
### 简单的审查工作流程
<div>
<img width="800" alt="简单的审查工作流程" src="https://github.com/blakeblackshear/frigate/assets/569905/6fed96e8-3b18-40e5-9ddc-31e6f3c9f2ff">
</div>
### 多摄像头可按时间轴查看
<div>
<img width="800" alt="多摄像头可按时间轴查看" src="https://github.com/blakeblackshear/frigate/assets/569905/d6788a15-0eeb-4427-a8d4-80b93cae3d74">
</div>
### 内置遮罩和区域编辑器
<div>
<img width="800" alt="内置遮罩和区域编辑器" src="https://github.com/blakeblackshear/frigate/assets/569905/d7885fc3-bfe6-452f-b7d0-d957cb3e31f5">
</div>

View File

@ -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"
}
}
}

View File

@ -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": "尖叫"
}

View File

@ -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": "账号",

View File

@ -71,7 +71,7 @@
"streaming": {
"label": "视频流",
"restreaming": {
"disabled": "重新流式传输未启用。",
"disabled": "此摄像头未启用视频流转发功能。",
"desc": {
"title": "为此摄像头设置 go2rtc以获取额外的实时预览选项和音频支持。",
"readTheDocumentation": "阅读文档(英文) "

View File

@ -3,7 +3,7 @@
"downloadVideo": {
"label": "下载视频",
"toast": {
"success": "下载成功"
"success": "您的回放视频已开始下载。"
}
}
}

View File

@ -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"
}

View File

@ -29,7 +29,7 @@
"error": "发生错误。请检查Frigate日志。"
}
},
"trackedObjectDetails": "探测对象详情",
"trackedObjectDetails": "跟踪对象详情",
"type": {
"details": "详情",
"snapshot": "快照",
@ -169,7 +169,7 @@
"desc": "删除此跟踪对象将移除快照、所有已保存的嵌入数据以及任何关联的对象生命周期条目。但在历史视图中的录制视频<em>不会</em>被删除。<br /><br />你确定要继续删除吗?"
}
},
"noTrackedObjects": "找不到探测的对象",
"noTrackedObjects": "未找到跟踪对象",
"fetchingTrackedObjectsFailed": "获取跟踪对象失败:{{errorMessage}}",
"trackedObjectsCount": "{{count}} 个跟踪对象",
"searchResult": {

View File

@ -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": "快照",

View File

@ -34,12 +34,12 @@
},
"toast": {
"error": {
"beforeDateBeLaterAfter": "“之前”日期必须晚于“之后”日期。",
"afterDatebeEarlierBefore": "“之后”日期必须早于“之前”日期。",
"minScoreMustBeLessOrEqualMaxScore": "最小分值 必须小于或等于 最大分值。",
"maxScoreMustBeGreaterOrEqualMinScore": "最大分值 必须大于或等于 最小分值",
"minSpeedMustBeLessOrEqualMaxSpeed": "最低速度 必须小于或等于 最高速度",
"maxSpeedMustBeGreaterOrEqualMinSpeed": "最高速度 必须大于或等于 最低速度"
"beforeDateBeLaterAfter": "结束日期必须晚于开始日期。",
"afterDatebeEarlierBefore": "开始日期必须早于结束日期。",
"minScoreMustBeLessOrEqualMaxScore": "最低分数必须小于或等于最高分数。",
"maxScoreMustBeGreaterOrEqualMinScore": "最高分数必须大于或等于最低分数。",
"minSpeedMustBeLessOrEqualMaxSpeed": "最低速度必须小于或等于最高速度",
"maxSpeedMustBeGreaterOrEqualMinSpeed": "最高速度必须大于或等于最低速度"
}
},
"tips": {

View File

@ -321,7 +321,7 @@
},
"improveContrast": {
"title": "提高对比度",
"desc": "提高较暗场景的对比度。默认值:启"
"desc": "提高较暗场景的对比度。<em>默认值:启用</em>"
},
"toast": {
"success": "运动设置已保存。"

View File

@ -145,6 +145,12 @@
"reindexingEmbeddings": "正在重新索引嵌入(已完成 {{processed}}%"
},
"features": {
"title": "功能"
"title": "功能",
"embeddings": {
"image_embedding_speed": "图像特征提取速度",
"face_embedding_speed": "人脸特征提取速度",
"plate_recognition_speed": "车牌识别速度",
"text_embedding_speed": "文本编码速度"
}
}
}

View File

@ -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 (
<>