diff --git a/web/public/locales/zh-Hant/audio.json b/web/public/locales/zh-Hant/audio.json index 9a458ce9c3..f5dd289f88 100644 --- a/web/public/locales/zh-Hant/audio.json +++ b/web/public/locales/zh-Hant/audio.json @@ -77,5 +77,427 @@ "chatter": "嘈雜聲", "crowd": "人群聲", "children_playing": "兒童嬉鬧聲", - "pets": "寵物" + "pets": "寵物", + "yip": "吠叫", + "howl": "嚎叫", + "bow_wow": "汪汪", + "growling": "咆哮", + "whimper_dog": "狗嗚咽", + "purr": "咕嚕", + "meow": "喵喵", + "hiss": "嘶嘶聲", + "caterwaul": "貓叫春", + "livestock": "牲畜", + "clip_clop": "蹄聲", + "neigh": "嘶鳴", + "cattle": "牛", + "moo": "哞哞", + "cowbell": "牛鈴", + "pig": "豬", + "oink": "哼哼", + "bleat": "咩咩", + "fowl": "家禽", + "chicken": "雞", + "cluck": "咯咯", + "cock_a_doodle_doo": "喔喔", + "turkey": "火雞", + "gobble": "咯咯", + "duck": "鴨子", + "quack": "嘎嘎", + "goose": "鵝", + "honk": "鳴笛/鵝叫聲", + "wild_animals": "野生動物", + "roaring_cats": "吼叫的貓科動物", + "roar": "吼叫", + "chirp": "啾啾", + "squawk": "啼叫", + "pigeon": "鴿子", + "coo": "咕咕", + "crow": "烏鴉", + "caw": "呱呱", + "owl": "貓頭鷹", + "hoot": "嗚嗚", + "flapping_wings": "翅膀拍打", + "dogs": "狗群", + "rats": "老鼠", + "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": "尤克里裡", + "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": "噼啪聲", + "sailboat": "帆船", + "rowboat": "划艇", + "motorboat": "摩托艇", + "ship": "輪船", + "motor_vehicle": "機動車", + "toot": "鳴笛", + "car_alarm": "汽車警報", + "power_windows": "電動車窗", + "skidding": "輪胎打滑", + "tire_squeal": "輪胎尖叫", + "car_passing_by": "汽車駛過", + "race_car": "賽車", + "truck": "卡車", + "air_brake": "氣閘", + "air_horn": "氣笛", + "reversing_beeps": "倒車提示音", + "ice_cream_truck": "冰淇淋車", + "emergency_vehicle": "應急車輛", + "police_car": "警車", + "ambulance": "救護車", + "fire_engine": "消防車", + "traffic_noise": "交通噪音", + "rail_transport": "鐵路運輸", + "train_whistle": "火車汽笛", + "train_horn": "火車鳴笛", + "railroad_car": "鐵路車廂", + "train_wheels_squealing": "火車輪子尖叫", + "subway": "地鐵", + "aircraft": "飛行器", + "aircraft_engine": "飛機引擎", + "jet_engine": "噴氣引擎", + "propeller": "螺旋槳", + "helicopter": "直升機", + "fixed-wing_aircraft": "固定翼飛機", + "engine": "引擎", + "light_engine": "輕型引擎", + "dental_drill's_drill": "牙科鑽", + "lawn_mower": "割草機", + "chainsaw": "電鋸", + "medium_engine": "中型引擎", + "heavy_engine": "重型引擎", + "engine_knocking": "引擎敲擊", + "engine_starting": "引擎啟動", + "idling": "怠速", + "accelerating": "加速", + "doorbell": "門鈴", + "ding-dong": "叮咚", + "sliding_door": "滑動門", + "slam": "猛關", + "knock": "敲門", + "tap": "輕敲", + "squeak": "吱吱聲", + "cupboard_open_or_close": "櫥櫃開關", + "drawer_open_or_close": "抽屜開關", + "dishes": "餐具", + "cutlery": "刀叉", + "chopping": "切菜", + "frying": "煎炸", + "microwave_oven": "微波爐", + "water_tap": "水龍頭", + "bathtub": "浴缸", + "toilet_flush": "馬桶沖水", + "electric_toothbrush": "電動牙刷", + "vacuum_cleaner": "吸塵器", + "zipper": "拉鍊", + "keys_jangling": "鑰匙叮噹", + "coin": "硬幣", + "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": "棘輪", + "tick": "滴答", + "tick-tock": "滴答滴答", + "gears": "齒輪", + "pulleys": "滑輪", + "sewing_machine": "縫紉機", + "mechanical_fan": "機械風扇", + "air_conditioning": "空調", + "cash_register": "收銀機", + "printer": "印表機", + "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": "尖叫", + "sodeling": "索德鈴", + "chird": "啾鳴", + "change_ringing": "變奏鐘聲", + "shofar": "羊角號", + "liquid": "液體", + "splash": "液體飛濺", + "slosh": "液體晃動", + "squish": "擠壓", + "drip": "水滴聲", + "pour": "倒水聲", + "trickle": "細流水聲", + "gush": "液體噴湧", + "fill": "注水聲", + "spray": "噴灑", + "pump": "泵送", + "stir": "攪拌聲", + "boiling": "沸騰聲", + "sonar": "聲吶聲", + "arrow": "箭矢聲", + "whoosh": "呼嘯聲", + "thump": "砰擊聲", + "thunk": "沉悶聲", + "electronic_tuner": "電子調音器", + "effects_unit": "效果器", + "chorus_effect": "合唱效果", + "basketball_bounce": "籃球反彈聲", + "bang": "砰聲", + "slap": "拍擊聲", + "whack": "重擊聲", + "smash": "猛擊聲", + "breaking": "破碎聲", + "bouncing": "彈跳聲", + "whip": "鞭打聲", + "flap": "撲動聲", + "scratch": "刮擦聲", + "scrape": "刮擦聲", + "rub": "摩擦聲", + "roll": "捲動聲", + "crushing": "壓碎聲", + "crumpling": "揉皺聲", + "tearing": "撕裂聲", + "beep": "嗶聲", + "ping": "嘀聲", + "ding": "叮聲", + "clang": "鐺聲", + "squeal": "尖銳聲", + "creak": "嘎吱聲", + "rustle": "沙沙聲", + "whir": "嗡聲", + "clatter": "哐啷聲", + "sizzle": "滋滋聲", + "clicking": "點選聲", + "clickety_clack": "咔嗒聲", + "rumble": "隆隆聲", + "plop": "撲通聲", + "hum": "嗡鳴聲", + "zing": "嗖聲", + "boing": "嘣聲", + "crunch": "咔嚓聲", + "sine_wave": "正弦波聲", + "harmonic": "諧波聲", + "chirp_tone": "啾聲", + "pulse": "脈衝", + "inside": "室內聲", + "outside": "室外聲", + "reverberation": "混響", + "echo": "回聲", + "noise": "噪聲", + "mains_hum": "電流嗡聲", + "distortion": "失真聲", + "sidetone": "旁音", + "cacophony": "刺耳噪聲", + "throbbing": "脈動聲", + "vibration": "振動聲" } diff --git a/web/public/locales/zh-Hant/common.json b/web/public/locales/zh-Hant/common.json index 17a60efaa6..e6e358bfb3 100644 --- a/web/public/locales/zh-Hant/common.json +++ b/web/public/locales/zh-Hant/common.json @@ -69,7 +69,8 @@ }, "inProgress": "處理中", "invalidStartTime": "無效的起始時間", - "invalidEndTime": "無效的結束時間" + "invalidEndTime": "無效的結束時間", + "never": "從不" }, "unit": { "speed": { @@ -95,7 +96,8 @@ "show": "顯示{{item}}", "ID": "ID", "none": "無", - "all": "全部" + "all": "全部", + "other": "其他" }, "button": { "apply": "套用", @@ -133,7 +135,19 @@ "export": "匯出", "deleteNow": "立即刪除", "next": "繼續", - "continue": "繼續" + "continue": "繼續", + "add": "新增", + "applying": "應用中…", + "undo": "撤銷", + "copiedToClipboard": "已複製到剪貼簿", + "modified": "已修改", + "overridden": "已覆蓋", + "resetToGlobal": "重設為全域性", + "resetToDefault": "重設為預設", + "saveAll": "儲存全部", + "savingAll": "儲存全部中…", + "undoAll": "撤銷全部", + "retry": "重試" }, "menu": { "system": "系統", @@ -185,7 +199,9 @@ "bg": "Български (保加利亞文)", "gl": "Galego (加利西亞文)", "id": "Bahasa Indonesia (印尼文)", - "ur": "اردو (烏爾都文)" + "ur": "اردو (烏爾都文)", + "hr": "Hrvatski(克羅地亞語)", + "bs": "Bosanski (波士尼亞語)" }, "appearance": "外觀", "darkMode": { @@ -233,7 +249,11 @@ "logout": "登出", "setPassword": "設定密碼" }, - "classification": "標籤分類" + "classification": "標籤分類", + "profiles": "設定檔", + "actions": "操作", + "features": "功能", + "chat": "聊天" }, "toast": { "copyUrlToClipboard": "已複製連結至剪貼簿。", @@ -242,7 +262,8 @@ "error": { "title": "保存設定變更失敗:{{errorMessage}}", "noMessage": "保存設定變更失敗" - } + }, + "success": "成功儲存設定檔。" } }, "role": { @@ -286,5 +307,7 @@ }, "information": { "pixels": "{{area}}px" - } + }, + "no_items": "沒有項目", + "validation_errors": "驗證錯誤" } diff --git a/web/public/locales/zh-Hant/components/camera.json b/web/public/locales/zh-Hant/components/camera.json index 3bace4d9de..1676e0da75 100644 --- a/web/public/locales/zh-Hant/components/camera.json +++ b/web/public/locales/zh-Hant/components/camera.json @@ -82,6 +82,7 @@ "zones": "區域", "mask": "遮罩", "motion": "移動", - "regions": "區塊" + "regions": "區塊", + "paths": "行動軌跡" } } diff --git a/web/public/locales/zh-Hant/components/dialog.json b/web/public/locales/zh-Hant/components/dialog.json index b28ccca480..3d6f33a684 100644 --- a/web/public/locales/zh-Hant/components/dialog.json +++ b/web/public/locales/zh-Hant/components/dialog.json @@ -6,7 +6,8 @@ "title": "Frigate 正在重新啟動", "content": "此頁面將在 {{countdown}} 秒後重新載入。", "button": "立即重新載入" - } + }, + "description": "Frigate 在重啟期間將短暫停止執行。" }, "explore": { "plus": { @@ -57,11 +58,60 @@ "endTimeMustAfterStartTime": "結束時間必須要在開始時間之後", "noVaildTimeSelected": "沒有選取有效的時間範圍" }, - "view": "查看" + "view": "查看", + "queued": "匯出已加入佇列。請在匯出頁面檢視進度。", + "batchSuccess_other": "已開始 {{count}} 個匯出,正在開啟案件。", + "batchPartial": "已開始 {{total}} 個匯出中的 {{successful}} 個。失敗的攝影機:{{failedCameras}}", + "batchFailed": "啟動匯出失敗(共 {{total}} 個)。失敗的攝影機:{{failedCameras}}", + "batchQueuedSuccess_other": "已排隊 {{count}} 個匯出,正在開啟案件。", + "batchQueuedPartial": "已將 {{total}} 個匯出中的 {{successful}} 個加入佇列。失敗的攝影機:{{failedCameras}}", + "batchQueueFailed": "未能將 {{total}} 個匯出加入佇列。失敗的攝影機:{{failedCameras}}" }, "fromTimeline": { "saveExport": "保存匯出資料", - "previewExport": "預覽匯出資料" + "previewExport": "預覽匯出資料", + "queueingExport": "正在加入匯出佇列…", + "useThisRange": "使用此範圍" + }, + "case": { + "newCaseOption": "建立新案件", + "newCaseNamePlaceholder": "新案件名稱", + "newCaseDescriptionPlaceholder": "案件描述", + "label": "案件", + "nonAdminHelp": "將為這些匯出檔案建立一個新的案件。", + "placeholder": "選擇案件" + }, + "queueing": "正在加入匯出佇列…", + "tabs": { + "export": "單個攝影機", + "multiCamera": "多個攝影機" + }, + "multiCamera": { + "timeRange": "時間範圍", + "selectFromTimeline": "從時間線選擇", + "cameraSelection": "攝影機", + "cameraSelectionHelp": "在此時間範圍內具有追蹤目標的攝影機會被預先選中", + "checkingActivity": "正在檢查攝影機活動…", + "noCameras": "沒有可用的攝影機", + "detectionCount_other": "{{count}} 個追蹤目標", + "nameLabel": "匯出名稱", + "namePlaceholder": "這些匯出檔案的可選基礎名稱", + "queueingButton": "正在加入匯出佇列…", + "exportButton_other": "匯出 {{count}} 個攝影機" + }, + "multi": { + "title_other": "匯出 {{count}} 個審閱", + "description": "匯出每個選定的審閱項。所有匯出檔案將歸入同一個案件。", + "descriptionNoCase": "匯出每個選定的審閱項。", + "caseNamePlaceholder": "審閱匯出 - {{date}}", + "exportButton_other": "匯出 {{count}} 個審閱", + "exportingButton": "匯出中…", + "toast": { + "started_other": "已開始 {{count}} 個匯出。正在開啟案件。", + "startedNoCase_other": "已開始 {{count}} 個匯出。", + "partial": "已啟動 {{total}} 個匯出,其中 {{successful}} 個成功。失敗項:{{failedItems}}", + "failed": "啟動匯出失敗(共 {{total}} 個)。失敗項:{{failedItems}}" + } } }, "streaming": { @@ -109,6 +159,14 @@ "markAsReviewed": "標記為已審核", "deleteNow": "立即刪除", "markAsUnreviewed": "標記為未審核" + }, + "shareTimestamp": { + "label": "分享該時間片段", + "title": "分享該時間片段", + "description": "分享帶當前錄製播放時間的網址,或選擇自訂時間。請注意這不是公開的分享連結,只有具備 Frigate 及此攝影機存取權限的使用者才能存取。", + "custom": "自訂時間", + "button": "分享時間片段網址", + "shareTitle": "Frigate 審閱時間:{{camera}}" } }, "imagePicker": { diff --git a/web/public/locales/zh-Hant/components/player.json b/web/public/locales/zh-Hant/components/player.json index dbecdb2beb..17015bd483 100644 --- a/web/public/locales/zh-Hant/components/player.json +++ b/web/public/locales/zh-Hant/components/player.json @@ -4,7 +4,8 @@ "noPreviewFoundFor": "找不到 {{cameraName}} 的預覽", "submitFrigatePlus": { "title": "提交此畫面至 Frigate+?", - "submit": "提交" + "submit": "提交", + "previewError": "無法載入快照預覽。該錄製當前可能不可用。" }, "streamOffline": { "desc": "{{cameraName}} 的 detect 串流未接收到任何畫面,請檢查錯誤日誌", diff --git a/web/public/locales/zh-Hant/config/cameras.json b/web/public/locales/zh-Hant/config/cameras.json index 8602044aa0..d2fd49f599 100644 --- a/web/public/locales/zh-Hant/config/cameras.json +++ b/web/public/locales/zh-Hant/config/cameras.json @@ -30,6 +30,924 @@ "listen": { "label": "監聽的音訊類型", "description": "要偵測的音訊事件類型清單(例如:狗吠、火警、尖叫、說話、大叫)。" + }, + "filters": { + "label": "音訊過濾器", + "description": "按音訊型別的過濾器設定,如用於減少誤報的置信度閾值。", + "threshold": { + "label": "最低音訊置信度", + "description": "音訊事件被計入的最低置信度閾值。" + } + }, + "enabled_in_config": { + "label": "原始音訊狀態", + "description": "指示原始靜態設定檔中是否開啟了音訊偵測。" + }, + "num_threads": { + "label": "偵測執行緒", + "description": "用於音訊偵測處理的執行緒數量。" } + }, + "mqtt": { + "label": "MQTT", + "description": "MQTT 影像釋出設定。", + "enabled": { + "label": "傳送影像", + "description": "為此攝影機啟用向 MQTT 主題釋出目標影像快照。" + }, + "timestamp": { + "label": "新增時間戳", + "description": "在釋出到 MQTT 的影像上疊加時間戳。" + }, + "bounding_box": { + "label": "新增邊界框", + "description": "在透過 MQTT 釋出的影像上繪製邊界框。" + }, + "crop": { + "label": "裁剪影像", + "description": "將釋出到 MQTT 的影像裁剪到偵測到的目標邊界框。" + }, + "height": { + "label": "影像高度", + "description": "透過 MQTT 釋出的影像的調整高度(像素)。" + }, + "required_zones": { + "label": "必需區域", + "description": "目標必須進入才能釋出 MQTT 影像的區域。" + }, + "quality": { + "label": "JPEG 品質", + "description": "釋出到 MQTT 的影像的 JPEG 品質(0-100)。" + } + }, + "notifications": { + "label": "通知", + "enabled": { + "label": "開啟通知", + "description": "為此攝影機啟用或停用通知。" + }, + "email": { + "label": "通知郵箱", + "description": "用於推送通知或某些通知提供商要求的郵箱地址。" + }, + "cooldown": { + "label": "冷卻時間", + "description": "通知之間的冷卻時間(秒),以避免向收件人傳送垃圾資訊。" + }, + "enabled_in_config": { + "label": "原始通知狀態", + "description": "指示原始靜態配置中是否啟用了通知。" + }, + "description": "為此攝影機啟用和控制通知的設定。" + }, + "birdseye": { + "label": "鳥瞰圖", + "description": "將多路攝影機畫面合併為統一佈局的鳥瞰合成檢視設定。", + "enabled": { + "label": "開啟鳥瞰圖", + "description": "開啟或關閉鳥瞰圖功能。" + }, + "mode": { + "label": "追蹤模式", + "description": "在鳥瞰檢視中包含攝影機的模式:'objects'(目標)、'motion'(動作)或 'continuous'(持續)。" + }, + "order": { + "label": "排序位置", + "description": "用於控制攝影機在鳥瞰檢視佈局中排序位置的數值。" + } + }, + "detect": { + "label": "目標偵測", + "description": "用於執行目標偵測、初始化追蹤器的偵測模組設定。", + "enabled": { + "label": "開啟目標偵測", + "description": "開啟或關閉該攝影機的目標偵測。" + }, + "height": { + "label": "偵測畫面高度", + "description": "用於配置偵測流的畫面高度(像素);留空則使用原始影片流解析度。" + }, + "width": { + "label": "偵測畫面寬度", + "description": "用於配置偵測流的畫面寬度(像素);留空則使用原始影片流解析度。" + }, + "fps": { + "label": "偵測幀率", + "description": "偵測時希望使用的幀率;數值越低,CPU 佔用越小(推薦值為 5,僅在追蹤極高速運動的目標時才設定更高數值,最高不建議超過 10)。" + }, + "min_initialized": { + "label": "最小初始化幀數", + "description": "建立追蹤目標前,需要連續偵測到目標的次數。數值越大,錯誤觸發的追蹤越少。預設值為幀率除以 2。" + }, + "max_disappeared": { + "label": "最大消失幀數", + "description": "追蹤目標在連續多少幀未被偵測到時,將被判定為已消失。" + }, + "stationary": { + "label": "靜止目標配置", + "description": "用於偵測和管理長時間靜止目標的相關設定。", + "interval": { + "label": "靜止間隔", + "description": "設定每隔多少幀執行一次偵測,用於確認目標是否處於靜止狀態。" + }, + "threshold": { + "label": "靜止閾值", + "description": "目標需要連續多少幀位置不變,才會被標記為靜止狀態。" + }, + "max_frames": { + "label": "最大幀數", + "description": "限制靜止目標最大追蹤時長(以幀數為單位),超過將會停止追蹤。", + "default": { + "label": "預設最大幀數", + "description": "停止追蹤前,用於追蹤靜止目標的預設最大幀數。" + }, + "objects": { + "label": "目標最大幀數", + "description": "可對不同型別目標分別設定靜止追蹤的最大幀數(覆蓋全域性設定)。" + } + }, + "classifier": { + "label": "開啟視覺分類器", + "description": "使用視覺分類器,即使偵測框有輕微抖動,也能準確判斷物體是否為靜止。" + } + }, + "annotation_offset": { + "label": "標記偏移量", + "description": "偵測標記的時間偏移量(毫秒),用於讓時間軸上的偵測框與錄影畫面更精準對齊;可設定為正數或負數。" + } + }, + "ffmpeg": { + "label": "FFmpeg", + "description": "FFmpeg 編解碼相關設定,包含可執行檔案路徑、命令列引數、硬體加速選項,以及按不同功能劃分的輸出引數。", + "path": { + "label": "FFmpeg 路徑", + "description": "要使用的 FFmpeg 可執行檔案路徑,或版本別名(如 \"5.0\" 或 \"7.0\")。" + }, + "global_args": { + "label": "FFmpeg 全域性引數", + "description": "傳遞給 FFmpeg 程序的全域性引數。" + }, + "hwaccel_args": { + "label": "硬體加速引數", + "description": "用於 FFmpeg 的硬體加速引數。建議使用對應硬體廠商的預設配置。" + }, + "input_args": { + "label": "輸入引數", + "description": "應用於 FFmpeg 輸入影片流的輸入引數。" + }, + "output_args": { + "label": "輸出引數", + "description": "用於不同 FFmpeg 功能(如偵測、錄製)的預設輸出引數。", + "detect": { + "label": "偵測輸出引數", + "description": "偵測功能影片流的預設輸出引數。" + }, + "record": { + "label": "錄製輸出引數", + "description": "錄製功能影片流的預設輸出引數。" + } + }, + "retry_interval": { + "label": "FFmpeg 重試時間", + "description": "攝影機影片流異常斷開後,重新連線前的等待時間。預設為 10 秒。" + }, + "apple_compatibility": { + "label": "Apple 相容性", + "description": "錄製 H.265 影片時啟用 HEVC 標記,以提升對 Apple 裝置播放的相容性。" + }, + "gpu": { + "label": "GPU 索引", + "description": "在啟用硬體加速時,預設使用的 GPU 索引。" + }, + "inputs": { + "label": "攝影機輸入影片流", + "description": "該攝影機的所有輸入流配置清單(包含路徑和功能)。", + "path": { + "label": "輸入路徑", + "description": "攝影機輸入影片流的地址或路徑。" + }, + "roles": { + "label": "輸入流功能", + "description": "定義該影片流的功能。" + }, + "global_args": { + "label": "FFmpeg 全域性引數", + "description": "該輸入影片流使用的 FFmpeg 全域性通用引數。" + }, + "hwaccel_args": { + "label": "硬體加速引數", + "description": "該輸入影片流的硬體加速引數。" + }, + "input_args": { + "label": "輸入引數", + "description": "該影片流特定的輸入引數。" + } + } + }, + "live": { + "label": "即時監控觀看", + "streams": { + "label": "即時監控流名稱", + "description": "配置的流名稱到用於即時監控播放的 restream/go2rtc 名稱的對映。" + }, + "height": { + "label": "即時監控高度", + "description": "在網頁頁面中渲染 jsmpeg 即時監控流的高度(像素);必須小於等於偵測流高度。" + }, + "quality": { + "label": "即時監控品質", + "description": "jsmpeg 流的編碼品質(1 最高,31 最低)。" + }, + "description": "用於控制即時流選擇、解析度和品質的網頁頁面設定。" + }, + "motion": { + "label": "畫面變動偵測", + "enabled": { + "label": "開啟畫面變動偵測", + "description": "開啟或關閉此攝影機的畫面變動偵測。" + }, + "threshold": { + "label": "畫面變動閾值", + "description": "畫面變動偵測器使用的像素差異閾值;數值越高靈敏度越低(範圍 1-255)。" + }, + "lightning_threshold": { + "label": "閃電閾值", + "description": "用於偵測和忽略短暫閃電閃爍的閾值(數值越低越敏感,範圍 0.3 到 1.0)。這不會完全阻止畫面變動偵測;只是當超過閾值時偵測器會停止分析額外的幀。在此類事件期間仍會建立基於畫面變動的錄影。" + }, + "skip_motion_threshold": { + "label": "跳過畫面變動閾值", + "description": "如果單幀中畫面變化超過此比例,偵測器將判定為無畫面變動並立即重新校準。這可以節省 CPU 並減少閃電、風暴等情況下的誤報,但也可能會錯過真正的事件,如 PTZ 攝影機自動追蹤目標。你需要權衡取捨:是否犧牲少量錄製片段,換取更少無效影片與更低的誤檢。保持為空即可關閉該功能。" + }, + "improve_contrast": { + "label": "改善對比度", + "description": "在畫面變動分析之前對幀應用對比度改善以幫助偵測。" + }, + "contour_area": { + "label": "輪廓區域", + "description": "畫面變動輪廓被計入所需的最小輪廓區域(像素)。" + }, + "delta_alpha": { + "label": "Delta alpha", + "description": "用於畫面變動計算的幀差異中使用的 alpha 混合因子。" + }, + "frame_alpha": { + "label": "畫面 alpha 通道", + "description": "畫面變動預處理時混合畫面所使用的 alpha 值。" + }, + "frame_height": { + "label": "畫面高度", + "description": "計算畫面變動時縮放畫面的高度(像素)。" + }, + "mask": { + "label": "遮罩座標", + "description": "定義用於包含/排除區域的畫面變動遮罩多邊形的有序 x,y 座標。" + }, + "mqtt_off_delay": { + "label": "MQTT 關閉延遲", + "description": "在釋出 MQTT 'off' 狀態之前,最後一次畫面變動後等待的秒數。" + }, + "enabled_in_config": { + "label": "原始畫面變動狀態", + "description": "指示原始靜態配置中是否啟用了畫面變動偵測。" + }, + "raw_mask": { + "label": "原始遮罩" + }, + "description": "此攝影機的預設畫面變動偵測設定。" + }, + "objects": { + "label": "目標", + "description": "目標追蹤預設設定,包括要追蹤的標籤和按目標的過濾器。", + "track": { + "label": "要追蹤的目標", + "description": "此攝影機要追蹤的目標標籤清單。" + }, + "filters": { + "label": "目標過濾器", + "description": "應用於偵測到的目標以減少誤報的過濾器(區域、比例、置信度)。", + "min_area": { + "label": "最小目標區域", + "description": "此目標型別所需的最小邊界框區域(像素或百分比)。可以是像素(整數)或百分比(0.000001 到 0.99 之間的浮點數)。" + }, + "max_area": { + "label": "最大目標區域", + "description": "此目標型別允許的最大邊界框區域(像素或百分比)。可以是像素(整數)或百分比(0.000001 到 0.99 之間的浮點數)。" + }, + "min_ratio": { + "label": "最小縱橫比", + "description": "邊界框所需的最小寬高比。" + }, + "max_ratio": { + "label": "最大縱橫比", + "description": "邊界框允許的最大寬高比。" + }, + "threshold": { + "label": "置信度閾值", + "description": "目標被視為真正陽性所需的平均偵測置信度閾值。" + }, + "min_score": { + "label": "最小置信度", + "description": "目標被計入所需的最小單幀偵測置信度。" + }, + "mask": { + "label": "過濾器遮罩", + "description": "定義此過濾器在幀內應用位置的多邊形座標。" + }, + "raw_mask": { + "label": "原始遮罩" + } + }, + "mask": { + "label": "目標遮罩", + "description": "用於防止在指定區域進行目標偵測的遮罩多邊形。" + }, + "raw_mask": { + "label": "原始遮罩" + }, + "genai": { + "label": "生成式 AI 目標配置", + "description": "用於傳送畫面給生成式 AI 進行生成和描述追蹤目標的選項。", + "enabled": { + "label": "開啟生成式 AI", + "description": "預設開啟生成式 AI 生成追蹤目標的描述。" + }, + "use_snapshot": { + "label": "使用快照", + "description": "使用目標快照而不是縮圖給生成式 AI 進行描述生成。" + }, + "prompt": { + "label": "字幕提示", + "description": "使用生成式 AI 生成描述時使用的預設提示模板。" + }, + "object_prompts": { + "label": "目標提示", + "description": "按目標設定提示詞,讓生成式 AI 對不同標籤的輸出進行定製。" + }, + "objects": { + "label": "生成式 AI 目標", + "description": "預設傳送給生成式 AI 的目標標籤清單。" + }, + "required_zones": { + "label": "必需區域", + "description": "目標必須進入這些區域,才會觸發生成式 AI 描述生成。" + }, + "debug_save_thumbnails": { + "label": "儲存縮圖", + "description": "儲存傳送給生成式 AI 的縮圖用於除錯和審閱。" + }, + "send_triggers": { + "label": "生成式 AI 觸發器", + "description": "定義畫面幀應在何時傳送給生成式 AI(如偵測結束時、更新後等)。", + "tracked_object_end": { + "label": "結束時傳送", + "description": "目標追蹤結束時向生成式 AI 傳送請求。" + }, + "after_significant_updates": { + "label": "生成式 AI 提前觸發", + "description": "在追蹤目標發生指定次數的重要變化後,向生成式 AI 傳送請求。" + } + }, + "enabled_in_config": { + "label": "原配置生成式 AI 狀態", + "description": "表示在原始靜態配置中是否已啟用生成式 AI。" + } + } + }, + "record": { + "label": "錄影", + "enabled": { + "label": "開啟錄影", + "description": "開啟或關閉此攝影機的錄影。" + }, + "expire_interval": { + "label": "錄影清理間隔", + "description": "清理過期錄影片段的間隔分鐘數。" + }, + "continuous": { + "label": "持續保留", + "description": "無論是否有追蹤目標或動作,保留錄影的天數。如果只想保留警報和偵測的錄影,請設定為 0。", + "days": { + "label": "保留天數", + "description": "保留錄影的天數。" + } + }, + "motion": { + "label": "動作保留", + "description": "無論是否有追蹤目標,由動作觸發的錄影保留天數。如果只想保留警報和偵測的錄影,請設定為 0。", + "days": { + "label": "保留天數", + "description": "保留錄影的天數。" + } + }, + "detections": { + "label": "偵測保留", + "description": "偵測事件的錄影保留設定,包括前後捕獲時長。", + "pre_capture": { + "label": "前捕獲秒數", + "description": "偵測事件之前包含在錄影中的秒數。" + }, + "post_capture": { + "label": "後捕獲秒數", + "description": "偵測事件之後包含在錄影中的秒數。" + }, + "retain": { + "label": "事件保留", + "description": "偵測事件錄影的保留設定。", + "days": { + "label": "保留天數", + "description": "保留偵測事件錄影的天數。" + }, + "mode": { + "label": "保留模式", + "description": "保留模式:all(儲存所有片段)、motion(儲存有動作的片段)或 active_objects(儲存有活動目標的片段)。" + } + } + }, + "alerts": { + "label": "警報保留", + "description": "警報事件的錄影保留設定,包括前後捕獲時長。", + "pre_capture": { + "label": "前捕獲秒數", + "description": "偵測事件之前包含在錄影中的秒數。" + }, + "post_capture": { + "label": "後捕獲秒數", + "description": "偵測事件之後包含在錄影中的秒數。" + }, + "retain": { + "label": "事件保留", + "description": "偵測事件錄影的保留設定。", + "days": { + "label": "保留天數", + "description": "保留偵測事件錄影的天數。" + }, + "mode": { + "label": "保留模式", + "description": "保留模式:all(儲存所有片段)、motion(儲存有動作的片段)或 active_objects(儲存有活動目標的片段)。" + } + } + }, + "export": { + "label": "匯出配置", + "description": "匯出錄影時使用的設定,如延時攝影和硬體加速。", + "hwaccel_args": { + "label": "匯出硬體加速引數", + "description": "用於匯出/轉碼操作的硬體加速引數。" + }, + "max_concurrent": { + "label": "最大併發匯出數", + "description": "同時可處理的最大匯出任務數量。" + } + }, + "preview": { + "label": "預覽配置", + "description": "控制介面中顯示的錄影預覽品質的設定。", + "quality": { + "label": "預覽品質", + "description": "預覽品質級別(very_low、low、medium、high、very_high)。" + } + }, + "enabled_in_config": { + "label": "原始錄影狀態", + "description": "指示原始靜態配置中是否啟用了錄影。" + }, + "description": "此攝影機的錄影和保留設定。" + }, + "review": { + "label": "審閱", + "alerts": { + "label": "警報配置", + "description": "哪些追蹤目標生成警報以及如何保留警報的設定。", + "enabled": { + "label": "開啟警報", + "description": "開啟或關閉此攝影機的警報生成。" + }, + "labels": { + "label": "警報標籤", + "description": "符合警報條件的目標標籤清單(例如:car、person)。" + }, + "required_zones": { + "label": "必需區域", + "description": "目標必須進入才能被視為警報的區域;留空則允許任何區域。" + }, + "enabled_in_config": { + "label": "原始警報狀態", + "description": "追蹤原始靜態配置中是否啟用了警報。" + }, + "cutoff_time": { + "label": "警報截止時間", + "description": "在沒有引起警報的活動後等待多少秒後截止警報。" + } + }, + "detections": { + "label": "偵測配置", + "description": "用於設定哪些追蹤目標會生成偵測記錄(非警報類),以及偵測記錄的保留方式。", + "enabled": { + "label": "開啟偵測", + "description": "開啟或關閉此攝影機的偵測事件。" + }, + "labels": { + "label": "偵測標籤", + "description": "符合偵測事件條件的目標標籤清單。" + }, + "required_zones": { + "label": "必需區域", + "description": "目標必須進入才能被視為偵測的區域;留空則允許任何區域。" + }, + "cutoff_time": { + "label": "偵測截止時間", + "description": "在沒有引起偵測的活動後等待多少秒後截止偵測。" + }, + "enabled_in_config": { + "label": "原始偵測狀態", + "description": "追蹤原始靜態配置中是否啟用了偵測。" + } + }, + "genai": { + "label": "生成式 AI 配置", + "description": "控制使用生成式 AI 為審閱項生成描述和摘要。", + "enabled": { + "label": "開啟生成式 AI 描述", + "description": "為審閱項開啟或關閉使用生成式 AI 生成描述和摘要。" + }, + "alerts": { + "label": "為警報開啟生成式 AI", + "description": "使用生成式 AI 為警報項生成描述。" + }, + "detections": { + "label": "為偵測開啟生成式 AI", + "description": "使用生成式 AI 為偵測項生成描述。" + }, + "image_source": { + "label": "審閱影像來源", + "description": "傳送給生成式 AI 的畫面來源('preview' 或 'recordings');'recordings' 使用更高品質的畫面幀,但會消耗更多的 token。" + }, + "additional_concerns": { + "label": "額外關注事項", + "description": "生成式 AI 在分析此攝影機的監控行為時,需要額外注意的事項或說明清單。" + }, + "debug_save_thumbnails": { + "label": "儲存縮圖", + "description": "儲存傳送給生成式 AI 提供商的縮圖用於除錯和審閱。" + }, + "enabled_in_config": { + "label": "原配置生成式 AI 狀態", + "description": "記錄在靜態配置中最初是否已啟用生成式 AI 審閱功能。" + }, + "preferred_language": { + "label": "首選語言", + "description": "向生成式 AI 提供商請求生成回應的首選語言。" + }, + "activity_context_prompt": { + "label": "活動上下文提示", + "description": "自訂提示詞,用於說明可疑行為與非可疑行為的界定,為生成式 AI 生成摘要提供上下文依據。" + } + }, + "description": "控制此攝影機的警報、偵測和生成式 AI 審閱總結的設定,這些設定會被介面與儲存功能使用。" + }, + "snapshots": { + "label": "快照", + "enabled": { + "label": "開啟快照", + "description": "開啟或關閉此攝影機的快照儲存。" + }, + "timestamp": { + "label": "時間戳疊加", + "description": "在 API 生成的快照上疊加時間戳。" + }, + "bounding_box": { + "label": "邊界框疊加", + "description": "在 API 生成的快照上繪製追蹤目標的邊界框。" + }, + "crop": { + "label": "裁剪快照", + "description": "在 API 生成的快照裁剪到偵測到的目標邊界框。" + }, + "required_zones": { + "label": "必需區域", + "description": "目標必須進入才能儲存快照的區域。" + }, + "height": { + "label": "快照高度", + "description": "將 API 生成的快照調整到的目標高度(像素);留空則保持原始大小。" + }, + "retain": { + "label": "快照保留", + "description": "快照的保留設定,包括預設天數和按目標覆蓋。", + "default": { + "label": "預設保留", + "description": "保留快照的預設天數。" + }, + "mode": { + "label": "保留模式", + "description": "保留模式:all(儲存所有片段)、motion(儲存有動作的片段)或 active_objects(儲存有活動目標的片段)。" + }, + "objects": { + "label": "目標保留", + "description": "按目標覆蓋的快照保留天數。" + } + }, + "quality": { + "label": "快照品質", + "description": "儲存快照的編碼品質(0-100)。" + }, + "description": "此攝影機的追蹤目標 API 快照設定。" + }, + "timestamp_style": { + "label": "時間戳樣式", + "position": { + "label": "時間戳位置", + "description": "時間戳在影像上的位置(tl/tr/bl/br)。" + }, + "format": { + "label": "時間戳格式", + "description": "用於時間戳的日期時間格式字串(Python 日期時間格式程式碼)。" + }, + "color": { + "label": "時間戳顏色", + "description": "時間戳文字的 RGB 顏色值(所有值 0-255)。", + "red": { + "label": "紅色", + "description": "時間戳顏色的紅色分量(0-255)。" + }, + "green": { + "label": "綠色", + "description": "時間戳顏色的綠色分量(0-255)。" + }, + "blue": { + "label": "藍色", + "description": "時間戳顏色的藍色分量(0-255)。" + } + }, + "thickness": { + "label": "時間戳粗細", + "description": "時間戳文字的線條粗細。" + }, + "effect": { + "label": "時間戳效果", + "description": "時間戳文字的視覺效果(none、solid、shadow)。" + }, + "description": "應用於錄影和快照的即時監控流中時間戳的樣式選項。" + }, + "audio_transcription": { + "label": "音訊轉錄", + "description": "用於事件和即時字幕的即時和語音音訊轉錄設定。", + "live_enabled": { + "label": "即時監控轉寫", + "description": "在接收到音訊時開啟即時監控持續轉寫。" + }, + "enabled": { + "label": "開啟轉錄", + "description": "開啟或關閉手動觸發的音訊事件轉寫。" + }, + "enabled_in_config": { + "label": "原始轉寫狀態" + } + }, + "semantic_search": { + "label": "語意搜尋", + "triggers": { + "label": "觸發器", + "description": "攝影機特定語意搜尋觸發器的操作和匹配條件。", + "friendly_name": { + "label": "友好名稱", + "description": "在 UI 中為此觸發器顯示的可選友好名稱。" + }, + "enabled": { + "label": "開啟此觸發器", + "description": "啟用或停用此語意搜尋觸發器。" + }, + "type": { + "label": "觸發器型別", + "description": "觸發器型別:'thumbnail'(與影像匹配)或 'description'(與文字匹配)。" + }, + "data": { + "label": "觸發器內容", + "description": "要與追蹤目標匹配的文字短語或縮圖 ID。" + }, + "threshold": { + "label": "觸發器閾值", + "description": "啟用此觸發器所需的最小相似度分數(0-1)。" + }, + "actions": { + "label": "觸發器操作", + "description": "觸發器匹配時要執行的操作清單(通知、sub_label、屬性)。" + } + }, + "description": "語意搜尋設定,用於構建和查詢目標嵌入以查詢相似項目。" + }, + "face_recognition": { + "label": "人臉辨識", + "enabled": { + "label": "開啟人臉辨識", + "description": "開啟或關閉人臉辨識。" + }, + "min_area": { + "label": "最小人臉區域", + "description": "需要嘗試進行人臉辨識的人臉偵測框最小大小(像素)。" + }, + "description": "該攝影機的人臉偵測與辨識設定。" + }, + "lpr": { + "label": "車牌辨識", + "description": "車牌辨識設定,包括偵測閾值、格式化和已知車牌。", + "enabled": { + "label": "開啟車牌辨識", + "description": "在此攝影機上啟用或停用車牌辨識。" + }, + "min_area": { + "label": "最小車牌區域", + "description": "嘗試辨識所需的最小車牌區域(像素)。" + }, + "enhancement": { + "label": "增強級別", + "description": "在 OCR 之前應用於車牌裁剪的增強級別(0-10);較高的值可能不總是改善結果,5 以上的級別可能僅適用於夜間車牌,應謹慎使用。" + }, + "expire_time": { + "label": "過期秒數", + "description": "未見到的車牌從追蹤器中過期的時間(秒)(僅適用於專用 LPR 攝影機)。" + } + }, + "profiles": { + "label": "設定檔", + "description": "可在執行時切換指定命名的設定檔,支援區域性覆蓋引數。" + }, + "onvif": { + "label": "ONVIF", + "description": "此攝影機的 ONVIF 連線和 PTZ 自動追蹤設定。", + "host": { + "label": "ONVIF 主機", + "description": "此攝影機 ONVIF 服務的主機(和可選協議)。" + }, + "port": { + "label": "ONVIF 埠", + "description": "ONVIF 服務的埠號。" + }, + "user": { + "label": "ONVIF 使用者名稱", + "description": "ONVIF 身份驗證的使用者名稱;某些裝置需要管理員使用者才能使用 ONVIF。" + }, + "password": { + "label": "ONVIF 密碼", + "description": "ONVIF 身份驗證的密碼。" + }, + "tls_insecure": { + "label": "停用 TLS 驗證", + "description": "跳過 TLS 驗證並停用 ONVIF 的摘要認證(不安全;僅用於安全網路)。" + }, + "profile": { + "label": "ONVIF 設定檔", + "description": "用於 PTZ 控制的指定 ONVIF 媒體配置,將透過 Token 或名稱匹配。如果未手動指定,將自動選擇第一個包含有效 PTZ 配置的媒體配置。" + }, + "autotracking": { + "label": "自動追蹤", + "description": "使用 PTZ 攝影機移動自動追蹤移動目標並使其保持在畫面中心。", + "enabled": { + "label": "開啟自動追蹤", + "description": "啟用或停用偵測目標的自動 PTZ 攝影機追蹤。" + }, + "calibrate_on_startup": { + "label": "啟動時校準", + "description": "在啟動時測量 PTZ 電機速度以提高追蹤精度。Frigate 將在校準後用 movement_weights 更新配置。" + }, + "zooming": { + "label": "變焦模式", + "description": "控制變焦行為:disabled(僅平移/傾斜)、absolute(最相容)或 relative(同時平移/傾斜/變焦)。" + }, + "zoom_factor": { + "label": "變焦因子", + "description": "控制追蹤目標的變焦級別。數值越低保持更多場景可見;數值越高放大更近但可能丟失追蹤。數值範圍 0.1 到 0.75。" + }, + "track": { + "label": "追蹤目標", + "description": "應觸發自動追蹤的目標型別清單。" + }, + "required_zones": { + "label": "必需區域", + "description": "目標必須進入這些區域之一才能開始自動追蹤。" + }, + "return_preset": { + "label": "返回預設", + "description": "追蹤結束後返回的攝影機韌體中配置的 ONVIF 預設名稱。" + }, + "timeout": { + "label": "返回超時", + "description": "失去追蹤後等待多少秒後將攝影機返回到預設位置。" + }, + "movement_weights": { + "label": "移動權重", + "description": "由攝影機校準自動生成的校準值。請勿手動修改。" + }, + "enabled_in_config": { + "label": "原始自動追蹤狀態", + "description": "用於追蹤配置中是否啟用自動追蹤的內部欄位。" + } + }, + "ignore_time_mismatch": { + "label": "忽略時間不匹配", + "description": "忽略 ONVIF 通訊中攝影機和 Frigate 伺服器之間的時間同步差異。" + } + }, + "best_image_timeout": { + "label": "最佳影像超時", + "description": "等待具有最高置信度分數的影像的時間。" + }, + "type": { + "label": "攝影機型別", + "description": "攝影機型別" + }, + "ui": { + "label": "攝影機頁面", + "description": "此攝影機在頁面中的顯示順序和可見性。顯示順序僅影響預設儀表板。如需更精細的控制,請使用“攝影機組”。", + "order": { + "label": "UI 順序", + "description": "用於在頁面中排序攝影機的順序(只會影響預設儀表板和清單);數值越大則在越後面。" + }, + "dashboard": { + "label": "在 UI 中顯示", + "description": "切換此攝影機在 Frigate 頁面的所有位置是否可見。停用此項將需要手動編輯配置才能在頁面中再次檢視此攝影機。" + } + }, + "webui_url": { + "label": "攝影機 URL", + "description": "從系統頁面直接存取攝影機管理後臺的 URL" + }, + "zones": { + "label": "區域", + "description": "區域允許您定義幀的特定區域,以便確定目標是否在特定區域內。", + "friendly_name": { + "label": "區域名稱", + "description": "區域的友好名稱,顯示在 Frigate UI 中。如果未設定,將使用區域名稱的格式化版本。" + }, + "enabled": { + "label": "開啟", + "description": "開啟或關閉此區域。停用的區域在執行時將被忽略。" + }, + "enabled_in_config": { + "label": "保持區域原始狀態的跟蹤。" + }, + "filters": { + "label": "區域過濾器", + "description": "應用於此區域內目標的過濾器。用於減少誤報或限制哪些目標被認為存在於區域內。", + "min_area": { + "label": "最小目標區域", + "description": "此目標型別所需的最小邊界框區域(像素或百分比)。可以是像素(整數)或百分比(0.000001 到 0.99 之間的浮點數)。" + }, + "max_area": { + "label": "最大目標區域", + "description": "此目標型別允許的最大邊界框區域(像素或百分比)。可以是像素(整數)或百分比(0.000001 到 0.99 之間的浮點數)。" + }, + "min_ratio": { + "label": "最小縱橫比", + "description": "邊界框所需的最小寬高比。" + }, + "max_ratio": { + "label": "最大縱橫比", + "description": "邊界框允許的最大寬高比。" + }, + "threshold": { + "label": "置信度閾值", + "description": "目標被視為真正陽性所需的平均偵測置信度閾值。" + }, + "min_score": { + "label": "最小置信度", + "description": "目標被計入所需的最小單幀偵測置信度。" + }, + "mask": { + "label": "過濾器遮罩", + "description": "定義此過濾器在幀內應用位置的多邊形座標。" + }, + "raw_mask": { + "label": "原始遮罩" + } + }, + "coordinates": { + "label": "座標", + "description": "定義區域區域的多邊形座標。可以是逗號分隔的字串或座標字串清單。座標應該是相對的(0-1)或絕對的(傳統)。" + }, + "distances": { + "label": "真實世界距離", + "description": "區域四邊形每邊的可選真實世界距離,用於速度或距離計算。如果設定,必須恰好有 4 個值。" + }, + "inertia": { + "label": "慣性幀數", + "description": "目標必須在區域內被連續偵測多少幀才能被認為存在。有助於過濾掉短暫偵測。" + }, + "loitering_time": { + "label": "徘徊秒數", + "description": "目標必須在區域內停留多少秒才能被視為徘徊。設定為 0 可停用徘徊偵測。" + }, + "speed_threshold": { + "label": "最小速度", + "description": "目標被認為存在於區域所需的最小速度(如果設定了距離,則為真實世界單位)。用於基於速度的區域觸發器。" + }, + "objects": { + "label": "觸發目標", + "description": "可以觸發此區域的目標型別清單(來自標籤對映)。可以是字串或字串清單。如果為空,則考慮所有目標。" + } + }, + "enabled_in_config": { + "label": "原始攝影機狀態", + "description": "保持攝影機的原始狀態跟蹤。" } } diff --git a/web/public/locales/zh-Hant/config/global.json b/web/public/locales/zh-Hant/config/global.json index 0f254ab830..1b973f1c2e 100644 --- a/web/public/locales/zh-Hant/config/global.json +++ b/web/public/locales/zh-Hant/config/global.json @@ -2,7 +2,8 @@ "audio": { "label": "音訊事件", "enabled": { - "label": "啟用音訊偵測" + "label": "啟用音訊偵測", + "description": "為所有攝影機啟用或停用音訊事件偵測;可按攝影機覆蓋。" }, "max_not_heard": { "label": "結束逾時", @@ -15,6 +16,1585 @@ "listen": { "label": "監聽的音訊類型", "description": "要偵測的音訊事件類型清單(例如:狗吠、火警、尖叫、說話、大叫)。" + }, + "description": "所有攝影機的基於音訊的事件偵測設定;可按攝影機覆蓋。", + "filters": { + "label": "音訊過濾器", + "description": "按音訊型別的過濾器設定,如用於減少誤報的置信度閾值。", + "threshold": { + "label": "最低音訊置信度", + "description": "音訊事件被計入的最低置信度閾值。" + } + }, + "enabled_in_config": { + "label": "原始音訊狀態", + "description": "指示原始靜態設定檔中是否開啟了音訊偵測。" + }, + "num_threads": { + "label": "偵測執行緒", + "description": "用於音訊偵測處理的執行緒數量。" + } + }, + "version": { + "label": "當前配置版本", + "description": "用於標識當前生效配置的版本號(數字或字串均可),幫助辨識配置遷移或格式是否發生變更。" + }, + "safe_mode": { + "label": "安全模式", + "description": "開啟後,Frigate 將以安全模式啟動,將會關閉部分功能,以便排查問題。" + }, + "environment_vars": { + "label": "環境變數", + "description": "用於在 Home Assistant OS 中為 Frigate 程序設定的環境變數。非 HAOS 使用者不能使用該配置項,而必須使用 Docker 的環境變數配置。" + }, + "logger": { + "label": "日誌", + "description": "控制預設日誌詳細程度,以及各元件的日誌級別覆蓋。", + "default": { + "label": "日誌等級", + "description": "預設全域性日誌詳細程度(除錯、資訊、警告、錯誤)。" + }, + "logs": { + "label": "單程序日誌級別", + "description": "按元件覆蓋日誌級別配置,用於提高或降低特定模組的日誌詳細程度。" + } + }, + "auth": { + "label": "身份驗證", + "description": "身份驗證和工作階段相關設定,包括 Cookie 和速率限制選項。", + "enabled": { + "label": "開啟身份驗證", + "description": "為 Frigate 頁面開啟原生身份驗證。" + }, + "reset_admin_password": { + "label": "重設管理員密碼", + "description": "開啟後,啟動時將重設管理員使用者密碼,並在日誌中列印新密碼。" + }, + "cookie_name": { + "label": "JWT Cookie 名稱", + "description": "用於儲存原生身份驗證 JWT 令牌的 Cookie 名稱。" + }, + "cookie_secure": { + "label": "安全 Cookie 標誌", + "description": "在身份驗證 Cookie 上設定安全標誌;使用 TLS 時應啟用此選項。" + }, + "session_length": { + "label": "工作階段時長", + "description": "基於 JWT 的工作階段持續時間(秒)。" + }, + "refresh_time": { + "label": "工作階段重新整理視窗", + "description": "當工作階段距離過期時間在此秒數範圍內時,將工作階段重新整理回完整時長。" + }, + "failed_login_rate_limit": { + "label": "登入失敗限制", + "description": "用於限制登入失敗嘗試次數的規則,以減少暴力破解攻擊。" + }, + "trusted_proxies": { + "label": "受信任的代理", + "description": "用於確定客戶端 IP 以進行速率限制的受信任代理 IP 清單。" + }, + "hash_iterations": { + "label": "雜湊迭代次數", + "description": "對使用者密碼進行雜湊處理時使用的 PBKDF2-SHA256 迭代次數。" + }, + "roles": { + "label": "權限組對映", + "description": "將權限組對映到攝影機清單。空清單表示該權限組可以存取所有攝影機。" + }, + "admin_first_time_login": { + "label": "管理員首次登入標誌", + "description": "啟用後,UI 可能會在登入頁面顯示幫助連結,告知使用者如何在管理員密碼重設後登入。 " + } + }, + "database": { + "label": "資料庫", + "description": "Frigate 用於儲存追蹤目標和錄影元資料的 SQLite 資料庫設定。", + "path": { + "label": "資料庫路徑", + "description": "Frigate SQLite 資料庫檔案的儲存路徑。" + } + }, + "go2rtc": { + "label": "go2rtc", + "description": "整合的 go2rtc 轉發服務設定,用於即時監控流轉發和轉碼。" + }, + "mqtt": { + "label": "MQTT", + "description": "連線到 MQTT 代理併發布遙測資料、快照和事件詳情的設定。", + "enabled": { + "label": "開啟 MQTT", + "description": "啟用或停用 MQTT 整合,用於狀態、事件和快照。" + }, + "host": { + "label": "MQTT 主機", + "description": "MQTT 代理的主機名或 IP 地址。" + }, + "port": { + "label": "MQTT 埠", + "description": "MQTT 代理的埠(普通 MQTT 通常為 1883)。" + }, + "topic_prefix": { + "label": "主題字首", + "description": "所有 Frigate 主題的 MQTT 主題字首;如果執行多個例項,必須唯一。" + }, + "client_id": { + "label": "客戶端 ID", + "description": "連線到 MQTT 代理時使用的客戶端辨識符號;每個例項應該唯一。" + }, + "stats_interval": { + "label": "統計資訊間隔", + "description": "向 MQTT 釋出系統和攝影機統計資訊的時間間隔(秒)。" + }, + "user": { + "label": "MQTT 使用者名稱", + "description": "可選的 MQTT 使用者名稱;可以透過環境變數或金鑰提供。" + }, + "password": { + "label": "MQTT 密碼", + "description": "可選的 MQTT 密碼;可以透過環境變數或金鑰提供。" + }, + "tls_ca_certs": { + "label": "TLS CA 證書", + "description": "用於 TLS 連線到代理的 CA 證書路徑(用於自簽名證書)。" + }, + "tls_client_cert": { + "label": "客戶端證書", + "description": "TLS 雙向認證的客戶端證書路徑;使用客戶端證書時不要設定使用者名稱/密碼。" + }, + "tls_client_key": { + "label": "客戶端金鑰", + "description": "客戶端證書的私鑰路徑。" + }, + "tls_insecure": { + "label": "TLS 不安全連線", + "description": "透過跳過主機名驗證允許不安全的 TLS 連線(不推薦)。" + }, + "qos": { + "label": "MQTT QoS", + "description": "MQTT 釋出/訂閱的服務品質級別(0、1 或 2)。" + } + }, + "notifications": { + "label": "通知", + "description": "為所有攝影機啟用和控制通知的設定;可按攝影機覆蓋。", + "enabled": { + "label": "開啟通知", + "description": "為所有攝影機啟用或停用通知;可按攝影機覆蓋。" + }, + "email": { + "label": "通知郵箱", + "description": "用於推送通知或某些通知提供商要求的郵箱地址。" + }, + "cooldown": { + "label": "冷卻時間", + "description": "通知之間的冷卻時間(秒),以避免向收件人傳送垃圾資訊。" + }, + "enabled_in_config": { + "label": "原始通知狀態", + "description": "指示原始靜態配置中是否啟用了通知。" + } + }, + "networking": { + "label": "網路", + "description": "網路相關設定,如 Frigate 端點的 IPv6 啟用。", + "ipv6": { + "label": "IPv6 配置", + "description": "Frigate 網路服務的 IPv6 特定設定。", + "enabled": { + "label": "開啟 IPv6", + "description": "在適用的情況下為 Frigate 服務(API 和 UI)啟用 IPv6 支援。" + } + }, + "listen": { + "label": "監聽埠配置", + "description": "內部和外部監聽埠的配置。此選項適用於高階使用者。對於大多數用例,建議在 Docker compose 檔案的 ports 部分進行更改。", + "internal": { + "label": "內部埠", + "description": "Frigate 的內部監聽埠(預設 5000)。" + }, + "external": { + "label": "外部埠", + "description": "Frigate 的外部監聽埠(預設 8971)。" + } + } + }, + "proxy": { + "label": "代理", + "description": "用於將 Frigate 整合到傳遞已認證使用者頭的反向代理後面的設定。", + "header_map": { + "label": "請求頭對映", + "description": "將傳入的代理請求頭對映到 Frigate 使用者和權限組欄位,用於基於代理的身份驗證。", + "user": { + "label": "使用者請求頭", + "description": "包含上游代理提供的已認證使用者名稱的請求頭。" + }, + "role": { + "label": "權限組請求頭", + "description": "包含來自上游代理的已認證使用者權限組或使用者組的請求頭。" + }, + "role_map": { + "label": "權限組對映", + "description": "將上游組值對映到 Frigate 權限組(例如將管理員組對映到管理員權限組)。" + } + }, + "logout_url": { + "label": "登出 URL", + "description": "透過代理登出時重定向使用者的 URL。" + }, + "auth_secret": { + "label": "代理金鑰", + "description": "與 X-Proxy-Secret 請求頭進行比對的可選金鑰,用於驗證受信任的代理。" + }, + "default_role": { + "label": "預設權限組", + "description": "當沒有權限組對映適用時分配給代理認證使用者的預設權限組(admin 或 viewer)。" + }, + "separator": { + "label": "分隔符", + "description": "用於分割代理請求頭中多個值的字元。" + } + }, + "telemetry": { + "label": "遙測", + "description": "系統遙測和統計選項,包括 GPU 和網路頻寬監控。", + "network_interfaces": { + "label": "網路介面", + "description": "要監控頻寬統計資訊的網路介面名稱字首清單。" + }, + "stats": { + "label": "系統統計", + "description": "用於啟用/停用各種系統和 GPU 統計資訊收集的選項。", + "amd_gpu_stats": { + "label": "AMD GPU 統計", + "description": "如果存在 AMD GPU,則啟用 AMD GPU 統計資訊收集。" + }, + "intel_gpu_stats": { + "label": "Intel GPU 統計", + "description": "如果存在 Intel GPU,則啟用 Intel GPU 統計資訊收集。" + }, + "network_bandwidth": { + "label": "網路頻寬", + "description": "為攝影機 ffmpeg 程序和偵測器啟用按程序網路頻寬監控(需要權限)。" + }, + "intel_gpu_device": { + "label": "Intel GPU 裝置", + "description": "當系統存在多個 Intel 顯示卡時,用於將顯示卡執行資料繫結到指定裝置的 PCI 匯流排地址或 DRM 裝置路徑(示例:/dev/dri/card1)。" + } + }, + "version_check": { + "label": "版本檢查", + "description": "啟用出站檢查以偵測是否有更新版本的 Frigate 可用。" + } + }, + "tls": { + "label": "TLS", + "description": "Frigate Web 端點(埠 8971)的 TLS 設定。", + "enabled": { + "label": "開啟 TLS", + "description": "為 Frigate 的網頁頁面和 API 的埠開啟 TLS 加密。" + } + }, + "ui": { + "label": "使用者介面", + "description": "使用者介面偏好設定,如時區、時間/日期格式和單位。", + "timezone": { + "label": "時區", + "description": "UI 中顯示的可選時區(如果未設定,則預設為瀏覽器本地時間)。" + }, + "time_format": { + "label": "時間格式", + "description": "UI 中使用的時間格式(browser、12hour 或 24hour)。" + }, + "date_style": { + "label": "日期樣式", + "description": "UI 中使用的日期樣式(full、long、medium、short)。" + }, + "time_style": { + "label": "時間樣式", + "description": "UI 中使用的時間樣式(full、long、medium、short)。" + }, + "unit_system": { + "label": "單位系統", + "description": "UI 和 MQTT 中使用的顯示單位系統(公制或英制)。" + } + }, + "detectors": { + "label": "偵測器硬體", + "description": "目標偵測器(CPU、GPU、ONNX 後端)的配置以及任何偵測器特定的模型設定。", + "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": "所選偵測器需要時,需填寫其模型檔案的路徑。" + }, + "axengine": { + "label": "愛芯元智 NPU", + "description": "AXERA AX650N/AX8850N NPU 偵測器,透過 AXEngine 執行庫載入並執行編譯後的 .axmodel 模型檔案。" + }, + "cpu": { + "label": "CPU", + "description": "在主機 CPU 上執行 TensorFlow Lite 模型的 CPU TFLite 偵測器,無硬體加速。不推薦使用。", + "num_threads": { + "label": "偵測執行緒數", + "description": "用於基於 CPU 的推理的執行緒數。" + } + }, + "deepstack": { + "label": "DeepStack", + "description": "將影像傳送到遠端 DeepStack HTTP API 進行推理的 DeepStack/CodeProject.AI 偵測器。不推薦使用。", + "api_url": { + "label": "DeepStack API URL", + "description": "DeepStack API 的 URL。" + }, + "api_timeout": { + "label": "DeepStack API 超時時間(秒)", + "description": "DeepStack API 請求允許的最長時間。" + }, + "api_key": { + "label": "DeepStack API 金鑰(如需要)", + "description": "用於認證 DeepStack 服務的可選 API 金鑰。" + } + }, + "degirum": { + "label": "DeGirum", + "description": "透過 DeGirum 雲或本地推理服務執行模型的 DeGirum 偵測器。", + "location": { + "label": "推理位置", + "description": "DeGirum 推理引擎的位置(例如 '@cloud'、'127.0.0.1')。" + }, + "zoo": { + "label": "模型庫", + "description": "DeGirum 模型庫的路徑或 URL。" + }, + "token": { + "label": "DeGirum 雲令牌", + "description": "用於 DeGirum 雲存取的令牌。" + } + }, + "edgetpu": { + "label": "EdgeTPU", + "description": "使用 EdgeTPU 委託執行為 Coral EdgeTPU 編譯的 TensorFlow Lite 模型的 EdgeTPU 偵測器。", + "device": { + "label": "裝置型別", + "description": "用於 EdgeTPU 推理的裝置(例如 'usb'、'pci')。" + } + }, + "hailo8l": { + "label": "Hailo-8/Hailo-8L", + "description": "使用 HEF 模型和 HailoRT SDK 在 Hailo 硬體上進行推理的 Hailo-8/Hailo-8L 偵測器。", + "device": { + "label": "裝置型別", + "description": "用於 Hailo 推理的裝置(例如 'PCIe'、'M.2')。" + } + }, + "memryx": { + "label": "MemryX", + "description": "在 MemryX 加速器上執行編譯的 DFP 模型的 MemryX MX3 偵測器。", + "device": { + "label": "裝置路徑", + "description": "用於 MemryX 推理的裝置(例如 'PCIe')。" + } + }, + "onnx": { + "label": "ONNX", + "description": "執行 ONNX 模型的 ONNX 偵測器;當可用時將使用可用的加速後端(CUDA/ROCm/OpenVINO)。", + "device": { + "label": "裝置型別", + "description": "用於 ONNX 推理的裝置(例如 'AUTO'、'CPU'、'GPU')。" + } + }, + "openvino": { + "label": "OpenVINO", + "description": "適用於 AMD 和 Intel CPU、Intel GPU 和 Intel VPU 硬體的 OpenVINO 偵測器。", + "device": { + "label": "裝置型別", + "description": "用於 OpenVINO 推理的裝置(例如 'CPU'、'GPU'、'NPU')。" + } + }, + "rknn": { + "label": "RKNN", + "description": "用於 Rockchip NPU 的 RKNN 偵測器;在 Rockchip 硬體上執行編譯的 RKNN 模型。", + "num_cores": { + "label": "使用的 NPU 核心數。", + "description": "要使用的 NPU 核心數(0 表示自動)。" + } + }, + "synaptics": { + "label": "Synaptics", + "description": "使用 Synap SDK 在 Synaptics 硬體上執行 .synap 格式模型的 Synaptics NPU 偵測器。" + }, + "teflon_tfl": { + "label": "Teflon", + "description": "使用 Mesa Teflon 委託庫在支援的 GPU 上加速推理的 TFLite Teflon 委託偵測器。" + }, + "tensorrt": { + "label": "TensorRT", + "description": "使用序列化的 TensorRT 引擎進行加速推理的 Nvidia Jetson 裝置 TensorRT 偵測器。", + "device": { + "label": "GPU 裝置索引", + "description": "要使用的 GPU 裝置索引。" + } + }, + "zmq": { + "label": "ZMQ IPC", + "description": "透過 ZeroMQ IPC 端點將推理解除安裝到外部程序的 ZMQ IPC 偵測器。", + "endpoint": { + "label": "ZMQ IPC 端點", + "description": "要連線的 ZMQ 端點。" + }, + "request_timeout_ms": { + "label": "ZMQ 請求超時(毫秒)", + "description": "ZMQ 請求的超時時間(毫秒)。" + }, + "linger_ms": { + "label": "ZMQ 套接字逗留時間(毫秒)", + "description": "套接字逗留時間(毫秒)。" + } + } + }, + "model": { + "label": "偵測模型", + "description": "用於配置自訂目標偵測模型及其輸入形狀的設定。", + "path": { + "label": "自訂目標偵測模型路徑", + "description": "自訂偵測模型檔案的路徑(或 Frigate+ 模型的 plus://)。" + }, + "labelmap_path": { + "label": "自訂目標偵測器的標籤對映", + "description": "將數字類別對映到偵測器字串標籤的標籤對映檔案路徑。" + }, + "width": { + "label": "目標偵測模型輸入寬度", + "description": "模型輸入張量的寬度(像素)。" + }, + "height": { + "label": "目標偵測模型輸入高度", + "description": "模型輸入張量的高度(像素)。" + }, + "labelmap": { + "label": "標籤對映自訂", + "description": "要合併到標準標籤對映中的覆蓋或重對映條目。" + }, + "attributes_map": { + "label": "目標標籤到屬性標籤的對映", + "description": "從目標標籤到屬性標籤的對映,用於附加元資料(例如 'car' -> ['license_plate'])。" + }, + "input_tensor": { + "label": "模型輸入張量形狀", + "description": "模型期望的張量格式:'nhwc' 或 'nchw'。" + }, + "input_pixel_format": { + "label": "模型輸入像素顏色格式", + "description": "模型期望的像素色彩空間:'rgb'、'bgr' 或 'yuv'。" + }, + "input_dtype": { + "label": "模型輸入資料型別", + "description": "模型輸入張量的資料型別(例如 'float32')。" + }, + "model_type": { + "label": "目標偵測模型型別", + "description": "某些偵測器用於最佳化的偵測器模型架構型別(ssd、yolox、yolonas)。" + } + }, + "genai": { + "label": "生成式 AI 配置", + "description": "用於生成目標描述和審閱摘要的整合生成式 AI 提供商設定。", + "api_key": { + "label": "API 金鑰", + "description": "某些提供商要求的 API 金鑰(也可以透過環境變數設定)。" + }, + "base_url": { + "label": "基礎 URL", + "description": "自託管或相容提供商的基礎 URL(例如 Ollama 例項)。" + }, + "model": { + "label": "模型", + "description": "用於生成描述或摘要的提供商模型。" + }, + "provider": { + "label": "提供商", + "description": "要使用的生成式 AI 提供商(例如:ollama、gemini、openai 等。國產大模型廠商可使用 openai 介面)。" + }, + "roles": { + "label": "功能", + "description": "生成式 AI 功能(對話、描述、嵌入);每個功能單獨一個提供商。" + }, + "provider_options": { + "label": "提供商選項", + "description": "要傳遞給生成式 AI 客戶端的、與服務提供商相關的額外配置項。" + }, + "runtime_options": { + "label": "執行時選項", + "description": "每次推理呼叫時傳遞給提供商的執行時選項。" + } + }, + "birdseye": { + "label": "鳥瞰圖", + "description": "將多路攝影機畫面合併為統一佈局的鳥瞰合成檢視設定。", + "enabled": { + "label": "開啟鳥瞰圖", + "description": "開啟或關閉鳥瞰圖功能。" + }, + "mode": { + "label": "追蹤模式", + "description": "在鳥瞰檢視中包含攝影機的模式:'objects'(目標)、'motion'(動作)或 'continuous'(持續)。" + }, + "restream": { + "label": "轉發 RTSP", + "description": "將鳥瞰圖輸出作為 RTSP 流重新轉發;啟用此功能將使鳥瞰圖持續執行。" + }, + "width": { + "label": "寬度", + "description": "合成的鳥瞰幀的輸出寬度(像素)。" + }, + "height": { + "label": "高度", + "description": "合成的鳥瞰幀的輸出高度(像素)。" + }, + "quality": { + "label": "編碼品質", + "description": "鳥瞰圖 mpeg1 流的編碼品質(1 最高品質,31 最低)。" + }, + "inactivity_threshold": { + "label": "非活動閾值", + "description": "攝影機停止在鳥瞰圖中顯示的非活動秒數。" + }, + "layout": { + "label": "佈局", + "description": "鳥瞰圖合成的佈局選項。", + "scaling_factor": { + "label": "縮放因子", + "description": "佈局計算器使用的縮放因子(範圍 1.0 到 5.0)。" + }, + "max_cameras": { + "label": "最大攝影機數", + "description": "鳥瞰圖中同時顯示的最大攝影機數量;顯示最近的攝影機。" + } + }, + "idle_heartbeat_fps": { + "label": "空閒心跳 FPS", + "description": "空閒時重新發送最後一個合成鳥瞰幀的每秒幀數;設為 0 則停用。" + }, + "order": { + "label": "排序位置", + "description": "用於控制攝影機在鳥瞰檢視佈局中排序位置的數值。" + } + }, + "detect": { + "label": "目標偵測", + "description": "用於執行目標偵測、初始化追蹤器的偵測模組設定。", + "enabled": { + "label": "開啟目標偵測", + "description": "為所有攝影機啟用或停用目標偵測,可按攝影機覆蓋。" + }, + "height": { + "label": "偵測畫面高度", + "description": "用於配置偵測流的畫面高度(像素);留空則使用原始影片流解析度。" + }, + "width": { + "label": "偵測畫面寬度", + "description": "用於配置偵測流的畫面寬度(像素);留空則使用原始影片流解析度。" + }, + "fps": { + "label": "偵測幀率", + "description": "偵測時希望使用的幀率;數值越低,CPU 佔用越小(推薦值為 5,僅在追蹤極高速運動的目標時才設定更高數值,最高不建議超過 10)。" + }, + "min_initialized": { + "label": "最小初始化幀數", + "description": "建立追蹤目標前,需要連續偵測到目標的次數。數值越大,錯誤觸發的追蹤越少。預設值為幀率除以 2。" + }, + "max_disappeared": { + "label": "最大消失幀數", + "description": "追蹤目標在連續多少幀未被偵測到時,將被判定為已消失。" + }, + "stationary": { + "label": "靜止目標配置", + "description": "用於偵測和管理長時間靜止目標的相關設定。", + "interval": { + "label": "靜止間隔", + "description": "設定每隔多少幀執行一次偵測,用於確認目標是否處於靜止狀態。" + }, + "threshold": { + "label": "靜止閾值", + "description": "目標需要連續多少幀位置不變,才會被標記為靜止狀態。" + }, + "max_frames": { + "label": "最大幀數", + "description": "限制靜止目標最大追蹤時長(以幀數為單位),超過將會停止追蹤。", + "default": { + "label": "預設最大幀數", + "description": "停止追蹤前,用於追蹤靜止目標的預設最大幀數。" + }, + "objects": { + "label": "目標最大幀數", + "description": "可對不同型別目標分別設定靜止追蹤的最大幀數(覆蓋全域性設定)。" + } + }, + "classifier": { + "label": "開啟視覺分類器", + "description": "使用視覺分類器,即使偵測框有輕微抖動,也能準確判斷物體是否為靜止。" + } + }, + "annotation_offset": { + "label": "標記偏移量", + "description": "偵測標記的時間偏移量(毫秒),用於讓時間軸上的偵測框與錄影畫面更精準對齊;可設定為正數或負數。" + } + }, + "ffmpeg": { + "label": "FFmpeg", + "description": "FFmpeg 編解碼相關設定,包含可執行檔案路徑、命令列引數、硬體加速選項,以及按不同功能劃分的輸出引數。", + "path": { + "label": "FFmpeg 路徑", + "description": "要使用的 FFmpeg 可執行檔案路徑,或版本別名(如 \"5.0\" 或 \"7.0\")。" + }, + "global_args": { + "label": "FFmpeg 全域性引數", + "description": "傳遞給 FFmpeg 程序的全域性引數。" + }, + "hwaccel_args": { + "label": "硬體加速引數", + "description": "用於 FFmpeg 的硬體加速引數。建議使用對應硬體廠商的預設配置。" + }, + "input_args": { + "label": "輸入引數", + "description": "應用於 FFmpeg 輸入影片流的輸入引數。" + }, + "output_args": { + "label": "輸出引數", + "description": "用於不同 FFmpeg 功能(如偵測、錄製)的預設輸出引數。", + "detect": { + "label": "偵測輸出引數", + "description": "偵測功能影片流的預設輸出引數。" + }, + "record": { + "label": "錄製輸出引數", + "description": "錄製功能影片流的預設輸出引數。" + } + }, + "retry_interval": { + "label": "FFmpeg 重試時間", + "description": "攝影機影片流異常斷開後,重新連線前的等待時間。預設為 10 秒。" + }, + "apple_compatibility": { + "label": "Apple 相容性", + "description": "錄製 H.265 影片時啟用 HEVC 標記,以提升對 Apple 裝置播放的相容性。" + }, + "gpu": { + "label": "GPU 索引", + "description": "在啟用硬體加速時,預設使用的 GPU 索引。" + }, + "inputs": { + "label": "攝影機輸入影片流", + "description": "該攝影機的所有輸入流配置清單(包含路徑和功能)。", + "path": { + "label": "輸入路徑", + "description": "攝影機輸入影片流的地址或路徑。" + }, + "roles": { + "label": "輸入流功能", + "description": "定義該影片流的功能。" + }, + "global_args": { + "label": "FFmpeg 全域性引數", + "description": "該輸入影片流使用的 FFmpeg 全域性通用引數。" + }, + "hwaccel_args": { + "label": "硬體加速引數", + "description": "該輸入影片流的硬體加速引數。" + }, + "input_args": { + "label": "輸入引數", + "description": "該影片流特定的輸入引數。" + } + } + }, + "live": { + "label": "即時監控觀看", + "description": "用於控制 JSMPEG 即時流解析度與畫質的設定。此設定不影響使用 go2rtc 進行即時預覽的攝影機。", + "streams": { + "label": "即時監控流名稱", + "description": "配置的流名稱到用於即時監控播放的 restream/go2rtc 名稱的對映。" + }, + "height": { + "label": "即時監控高度", + "description": "在網頁頁面中渲染 jsmpeg 即時監控流的高度(像素);必須小於等於偵測流高度。" + }, + "quality": { + "label": "即時監控品質", + "description": "jsmpeg 流的編碼品質(1 最高,31 最低)。" + } + }, + "motion": { + "label": "畫面變動偵測", + "description": "應用於攝影機的預設動作偵測設定,除非按攝影機覆蓋。", + "enabled": { + "label": "開啟畫面變動偵測", + "description": "為所有攝影機啟用或停用動作偵測;可按攝影機覆蓋。" + }, + "threshold": { + "label": "畫面變動閾值", + "description": "畫面變動偵測器使用的像素差異閾值;數值越高靈敏度越低(範圍 1-255)。" + }, + "lightning_threshold": { + "label": "閃電閾值", + "description": "用於偵測和忽略短暫閃電閃爍的閾值(數值越低越敏感,範圍 0.3 到 1.0)。這不會完全阻止畫面變動偵測;只是當超過閾值時偵測器會停止分析額外的幀。在此類事件期間仍會建立基於畫面變動的錄影。" + }, + "skip_motion_threshold": { + "label": "跳過畫面變動閾值", + "description": "如果單幀中畫面變化超過此比例,偵測器將判定為無畫面變動並立即重新校準。這可以節省 CPU 並減少閃電、風暴等情況下的誤報,但也可能會錯過真正的事件,如 PTZ 攝影機自動追蹤目標。你需要權衡取捨:是否犧牲少量錄製片段,換取更少無效影片與更低的誤檢。保持為空即可關閉該功能。" + }, + "improve_contrast": { + "label": "改善對比度", + "description": "在畫面變動分析之前對幀應用對比度改善以幫助偵測。" + }, + "contour_area": { + "label": "輪廓區域", + "description": "畫面變動輪廓被計入所需的最小輪廓區域(像素)。" + }, + "delta_alpha": { + "label": "Delta alpha", + "description": "用於畫面變動計算的幀差異中使用的 alpha 混合因子。" + }, + "frame_alpha": { + "label": "畫面 alpha 通道", + "description": "畫面變動預處理時混合畫面所使用的 alpha 值。" + }, + "frame_height": { + "label": "畫面高度", + "description": "計算畫面變動時縮放畫面的高度(像素)。" + }, + "mask": { + "label": "遮罩座標", + "description": "定義用於包含/排除區域的畫面變動遮罩多邊形的有序 x,y 座標。" + }, + "mqtt_off_delay": { + "label": "MQTT 關閉延遲", + "description": "在釋出 MQTT 'off' 狀態之前,最後一次畫面變動後等待的秒數。" + }, + "enabled_in_config": { + "label": "原始畫面變動狀態", + "description": "指示原始靜態配置中是否啟用了畫面變動偵測。" + }, + "raw_mask": { + "label": "原始遮罩" + } + }, + "objects": { + "label": "目標", + "description": "目標追蹤預設設定,包括要追蹤的標籤和按目標的過濾器。", + "track": { + "label": "要追蹤的目標", + "description": "所有攝影機要追蹤的目標標籤清單;可按攝影機覆蓋。" + }, + "filters": { + "label": "目標過濾器", + "description": "應用於偵測到的目標以減少誤報的過濾器(區域、比例、置信度)。", + "min_area": { + "label": "最小目標區域", + "description": "此目標型別所需的最小邊界框區域(像素或百分比)。可以是像素(整數)或百分比(0.000001 到 0.99 之間的浮點數)。" + }, + "max_area": { + "label": "最大目標區域", + "description": "此目標型別允許的最大邊界框區域(像素或百分比)。可以是像素(整數)或百分比(0.000001 到 0.99 之間的浮點數)。" + }, + "min_ratio": { + "label": "最小縱橫比", + "description": "邊界框所需的最小寬高比。" + }, + "max_ratio": { + "label": "最大縱橫比", + "description": "邊界框允許的最大寬高比。" + }, + "threshold": { + "label": "置信度閾值", + "description": "目標被視為真正陽性所需的平均偵測置信度閾值。" + }, + "min_score": { + "label": "最小置信度", + "description": "目標被計入所需的最小單幀偵測置信度。" + }, + "mask": { + "label": "過濾器遮罩", + "description": "定義此過濾器在幀內應用位置的多邊形座標。" + }, + "raw_mask": { + "label": "原始遮罩" + } + }, + "mask": { + "label": "目標遮罩", + "description": "用於防止在指定區域進行目標偵測的遮罩多邊形。" + }, + "raw_mask": { + "label": "原始遮罩" + }, + "genai": { + "label": "生成式 AI 目標配置", + "description": "用於傳送畫面給生成式 AI 進行生成和描述追蹤目標的選項。", + "enabled": { + "label": "開啟生成式 AI", + "description": "預設開啟生成式 AI 生成追蹤目標的描述。" + }, + "use_snapshot": { + "label": "使用快照", + "description": "使用目標快照而不是縮圖給生成式 AI 進行描述生成。" + }, + "prompt": { + "label": "字幕提示", + "description": "使用生成式 AI 生成描述時使用的預設提示模板。" + }, + "object_prompts": { + "label": "目標提示", + "description": "按目標設定提示詞,讓生成式 AI 對不同標籤的輸出進行定製。" + }, + "objects": { + "label": "生成式 AI 目標", + "description": "預設傳送給生成式 AI 的目標標籤清單。" + }, + "required_zones": { + "label": "必需區域", + "description": "目標必須進入這些區域,才會觸發生成式 AI 描述生成。" + }, + "debug_save_thumbnails": { + "label": "儲存縮圖", + "description": "儲存傳送給生成式 AI 的縮圖用於除錯和審閱。" + }, + "send_triggers": { + "label": "生成式 AI 觸發器", + "description": "定義畫面幀應在何時傳送給生成式 AI(如偵測結束時、更新後等)。", + "tracked_object_end": { + "label": "結束時傳送", + "description": "目標追蹤結束時向生成式 AI 傳送請求。" + }, + "after_significant_updates": { + "label": "生成式 AI 提前觸發", + "description": "在追蹤目標發生指定次數的重要變化後,向生成式 AI 傳送請求。" + } + }, + "enabled_in_config": { + "label": "原配置生成式 AI 狀態", + "description": "表示在原始靜態配置中是否已啟用生成式 AI。" + } + } + }, + "record": { + "label": "錄影", + "description": "應用於攝影機的錄影和保留設定,除非按攝影機覆蓋。", + "enabled": { + "label": "開啟錄影", + "description": "為所有攝影機啟用或停用錄影;可按攝影機覆蓋。" + }, + "expire_interval": { + "label": "錄影清理間隔", + "description": "清理過期錄影片段的間隔分鐘數。" + }, + "continuous": { + "label": "持續保留", + "description": "無論是否有追蹤目標或動作,保留錄影的天數。如果只想保留警報和偵測的錄影,請設定為 0。", + "days": { + "label": "保留天數", + "description": "保留錄影的天數。" + } + }, + "motion": { + "label": "動作保留", + "description": "無論是否有追蹤目標,由動作觸發的錄影保留天數。如果只想保留警報和偵測的錄影,請設定為 0。", + "days": { + "label": "保留天數", + "description": "保留錄影的天數。" + } + }, + "detections": { + "label": "偵測保留", + "description": "偵測事件的錄影保留設定,包括前後捕獲時長。", + "pre_capture": { + "label": "前捕獲秒數", + "description": "偵測事件之前包含在錄影中的秒數。" + }, + "post_capture": { + "label": "後捕獲秒數", + "description": "偵測事件之後包含在錄影中的秒數。" + }, + "retain": { + "label": "事件保留", + "description": "偵測事件錄影的保留設定。", + "days": { + "label": "保留天數", + "description": "保留偵測事件錄影的天數。" + }, + "mode": { + "label": "保留模式", + "description": "保留模式:all(儲存所有片段)、motion(儲存有動作的片段)或 active_objects(儲存有活動目標的片段)。" + } + } + }, + "alerts": { + "label": "警報保留", + "description": "警報事件的錄影保留設定,包括前後捕獲時長。", + "pre_capture": { + "label": "前捕獲秒數", + "description": "偵測事件之前包含在錄影中的秒數。" + }, + "post_capture": { + "label": "後捕獲秒數", + "description": "偵測事件之後包含在錄影中的秒數。" + }, + "retain": { + "label": "事件保留", + "description": "偵測事件錄影的保留設定。", + "days": { + "label": "保留天數", + "description": "保留偵測事件錄影的天數。" + }, + "mode": { + "label": "保留模式", + "description": "保留模式:all(儲存所有片段)、motion(儲存有動作的片段)或 active_objects(儲存有活動目標的片段)。" + } + } + }, + "export": { + "label": "匯出配置", + "description": "匯出錄影時使用的設定,如延時攝影和硬體加速。", + "hwaccel_args": { + "label": "匯出硬體加速引數", + "description": "用於匯出/轉碼操作的硬體加速引數。" + }, + "max_concurrent": { + "label": "最大併發匯出數", + "description": "同時可處理的最大匯出任務數量。" + } + }, + "preview": { + "label": "預覽配置", + "description": "控制介面中顯示的錄影預覽品質的設定。", + "quality": { + "label": "預覽品質", + "description": "預覽品質級別(very_low、low、medium、high、very_high)。" + } + }, + "enabled_in_config": { + "label": "原始錄影狀態", + "description": "指示原始靜態配置中是否啟用了錄影。" + } + }, + "review": { + "label": "審閱", + "description": "控制 UI 和儲存使用的警報、偵測和 GenAI 審閱摘要的設定。", + "alerts": { + "label": "警報配置", + "description": "哪些追蹤目標生成警報以及如何保留警報的設定。", + "enabled": { + "label": "開啟警報", + "description": "為所有攝影機啟用或停用警報生成;可按攝影機覆蓋。" + }, + "labels": { + "label": "警報標籤", + "description": "符合警報條件的目標標籤清單(例如:car、person)。" + }, + "required_zones": { + "label": "必需區域", + "description": "目標必須進入才能被視為警報的區域;留空則允許任何區域。" + }, + "enabled_in_config": { + "label": "原始警報狀態", + "description": "追蹤原始靜態配置中是否啟用了警報。" + }, + "cutoff_time": { + "label": "警報截止時間", + "description": "在沒有引起警報的活動後等待多少秒後截止警報。" + } + }, + "detections": { + "label": "偵測配置", + "description": "用於設定哪些追蹤目標會生成偵測記錄(非警報類),以及偵測記錄的保留方式。", + "enabled": { + "label": "開啟偵測", + "description": "為所有攝影機啟用或停用偵測事件;可按攝影機覆蓋。" + }, + "labels": { + "label": "偵測標籤", + "description": "符合偵測事件條件的目標標籤清單。" + }, + "required_zones": { + "label": "必需區域", + "description": "目標必須進入才能被視為偵測的區域;留空則允許任何區域。" + }, + "cutoff_time": { + "label": "偵測截止時間", + "description": "在沒有引起偵測的活動後等待多少秒後截止偵測。" + }, + "enabled_in_config": { + "label": "原始偵測狀態", + "description": "追蹤原始靜態配置中是否啟用了偵測。" + } + }, + "genai": { + "label": "生成式 AI 配置", + "description": "控制使用生成式 AI 為審閱項生成描述和摘要。", + "enabled": { + "label": "開啟生成式 AI 描述", + "description": "為審閱項開啟或關閉使用生成式 AI 生成描述和摘要。" + }, + "alerts": { + "label": "為警報開啟生成式 AI", + "description": "使用生成式 AI 為警報項生成描述。" + }, + "detections": { + "label": "為偵測開啟生成式 AI", + "description": "使用生成式 AI 為偵測項生成描述。" + }, + "image_source": { + "label": "審閱影像來源", + "description": "傳送給生成式 AI 的畫面來源('preview' 或 'recordings');'recordings' 使用更高品質的畫面幀,但會消耗更多的 token。" + }, + "additional_concerns": { + "label": "額外關注事項", + "description": "生成式 AI 在分析此攝影機的監控行為時,需要額外注意的事項或說明清單。" + }, + "debug_save_thumbnails": { + "label": "儲存縮圖", + "description": "儲存傳送給生成式 AI 提供商的縮圖用於除錯和審閱。" + }, + "enabled_in_config": { + "label": "原配置生成式 AI 狀態", + "description": "記錄在靜態配置中最初是否已啟用生成式 AI 審閱功能。" + }, + "preferred_language": { + "label": "首選語言", + "description": "向生成式 AI 提供商請求生成回應的首選語言。" + }, + "activity_context_prompt": { + "label": "活動上下文提示", + "description": "自訂提示詞,用於說明可疑行為與非可疑行為的界定,為生成式 AI 生成摘要提供上下文依據。" + } + } + }, + "snapshots": { + "label": "快照", + "description": "所有攝影機的追蹤目標 API 快照設定;可攝影機單獨配置覆蓋全域性配置。", + "enabled": { + "label": "開啟快照", + "description": "為所有攝影機啟用或停用儲存快照;可按攝影機覆蓋。" + }, + "timestamp": { + "label": "時間戳疊加", + "description": "在 API 生成的快照上疊加時間戳。" + }, + "bounding_box": { + "label": "邊界框疊加", + "description": "在 API 生成的快照上繪製追蹤目標的邊界框。" + }, + "crop": { + "label": "裁剪快照", + "description": "在 API 生成的快照裁剪到偵測到的目標邊界框。" + }, + "required_zones": { + "label": "必需區域", + "description": "目標必須進入才能儲存快照的區域。" + }, + "height": { + "label": "快照高度", + "description": "將 API 生成的快照調整到的目標高度(像素);留空則保持原始大小。" + }, + "retain": { + "label": "快照保留", + "description": "快照的保留設定,包括預設天數和按目標覆蓋。", + "default": { + "label": "預設保留", + "description": "保留快照的預設天數。" + }, + "mode": { + "label": "保留模式", + "description": "保留模式:all(儲存所有片段)、motion(儲存有動作的片段)或 active_objects(儲存有活動目標的片段)。" + }, + "objects": { + "label": "目標保留", + "description": "按目標覆蓋的快照保留天數。" + } + }, + "quality": { + "label": "快照品質", + "description": "儲存快照的編碼品質(0-100)。" + } + }, + "timestamp_style": { + "label": "時間戳樣式", + "description": "應用於除錯檢視和快照的幀內時間戳樣式選項。", + "position": { + "label": "時間戳位置", + "description": "時間戳在影像上的位置(tl/tr/bl/br)。" + }, + "format": { + "label": "時間戳格式", + "description": "用於時間戳的日期時間格式字串(Python 日期時間格式程式碼)。" + }, + "color": { + "label": "時間戳顏色", + "description": "時間戳文字的 RGB 顏色值(所有值 0-255)。", + "red": { + "label": "紅色", + "description": "時間戳顏色的紅色分量(0-255)。" + }, + "green": { + "label": "綠色", + "description": "時間戳顏色的綠色分量(0-255)。" + }, + "blue": { + "label": "藍色", + "description": "時間戳顏色的藍色分量(0-255)。" + } + }, + "thickness": { + "label": "時間戳粗細", + "description": "時間戳文字的線條粗細。" + }, + "effect": { + "label": "時間戳效果", + "description": "時間戳文字的視覺效果(none、solid、shadow)。" + } + }, + "audio_transcription": { + "label": "音訊轉錄", + "description": "用於事件和即時字幕的即時和語音音訊轉錄設定。", + "enabled": { + "label": "開啟音訊轉錄", + "description": "為所有攝影機啟用或停用自動音訊轉錄;可按攝影機覆蓋。" + }, + "language": { + "label": "轉錄語言", + "description": "用於轉錄/翻譯的語言程式碼(例如 'en' 表示英語)。請參閱 https://whisper-api.com/docs/languages/ 瞭解支援的語言程式碼。" + }, + "device": { + "label": "轉錄裝置", + "description": "執行轉錄模型的裝置金鑰(CPU/GPU)。目前僅支援 NVIDIA CUDA GPU 進行轉錄。" + }, + "model_size": { + "label": "模型大小", + "description": "用於離線音訊事件轉錄的模型大小。" + }, + "live_enabled": { + "label": "即時監控轉寫", + "description": "在接收到音訊時開啟即時監控持續轉寫。" + } + }, + "classification": { + "label": "目標分類", + "description": "用於最佳化目標標籤或狀態分類的分類模型設定。", + "bird": { + "label": "鳥類分類配置", + "description": "鳥類分類模型特定的設定。", + "enabled": { + "label": "鳥類分類", + "description": "啟用或停用鳥類分類。" + }, + "threshold": { + "label": "最小分數", + "description": "接受鳥類分類所需的最小分類分數。" + } + }, + "custom": { + "label": "自訂分類模型", + "description": "用於目標或狀態偵測的自訂分類模型配置。", + "enabled": { + "label": "開啟模型", + "description": "啟用或停用自訂分類模型。" + }, + "name": { + "label": "模型名稱", + "description": "要使用的自訂分類模型的辨識符號。" + }, + "threshold": { + "label": "分數閾值", + "description": "用於更改分類狀態的分數閾值。" + }, + "save_attempts": { + "label": "儲存嘗試", + "description": "為最近分類 UI 儲存多少次分類嘗試。" + }, + "object_config": { + "objects": { + "label": "分類目標", + "description": "要執行目標分類的目標型別清單。" + }, + "classification_type": { + "label": "分類型別", + "description": "應用的分類型別:'sub_label'(新增 sub_label)或其他支援的型別。" + } + }, + "state_config": { + "cameras": { + "label": "分類攝影機", + "description": "用於執行狀態分類的按攝影機裁剪和設定。", + "crop": { + "label": "分類裁剪", + "description": "用於在此攝影機上執行分類的裁剪座標。" + } + }, + "motion": { + "label": "動作時執行", + "description": "啟用後,當在指定裁剪區域內偵測到動作時執行分類。" + }, + "interval": { + "label": "分類間隔", + "description": "狀態分類的定期分類執行間隔(秒)。" + } + } + } + }, + "semantic_search": { + "label": "語意搜尋", + "description": "用於構建和查詢目標嵌入以查詢相似項的語意搜尋設定。", + "enabled": { + "label": "開啟語意搜尋", + "description": "啟用或停用語意搜尋功能。" + }, + "reindex": { + "label": "啟動時重建索引", + "description": "觸發將歷史追蹤目標完全重新索引到嵌入資料庫。" + }, + "model": { + "label": "語意搜尋模型或生成式 AI 服務名稱", + "description": "用於語意搜尋的嵌入模型(例如 'jinav1'),或具有嵌入功能(embeddings)的生成式 AI 服務名稱。" + }, + "model_size": { + "label": "模型大小", + "description": "選擇模型大小;'small' 在 CPU 上執行,'large' 通常需要 GPU。" + }, + "device": { + "label": "裝置", + "description": "這是一個覆蓋選項,用於指定特定裝置。請參閱 https://onnxruntime.ai/docs/execution-providers/ 瞭解更多資訊" + }, + "triggers": { + "label": "觸發器", + "description": "攝影機特定語意搜尋觸發器的操作和匹配條件。", + "friendly_name": { + "label": "友好名稱", + "description": "在 UI 中為此觸發器顯示的可選友好名稱。" + }, + "enabled": { + "label": "開啟此觸發器", + "description": "啟用或停用此語意搜尋觸發器。" + }, + "type": { + "label": "觸發器型別", + "description": "觸發器型別:'thumbnail'(與影像匹配)或 'description'(與文字匹配)。" + }, + "data": { + "label": "觸發器內容", + "description": "要與追蹤目標匹配的文字短語或縮圖 ID。" + }, + "threshold": { + "label": "觸發器閾值", + "description": "啟用此觸發器所需的最小相似度分數(0-1)。" + }, + "actions": { + "label": "觸發器操作", + "description": "觸發器匹配時要執行的操作清單(通知、sub_label、屬性)。" + } + } + }, + "face_recognition": { + "label": "人臉辨識", + "description": "所有攝影機的人臉偵測和辨識設定;可按攝影機覆蓋。", + "enabled": { + "label": "開啟人臉辨識", + "description": "為所有攝影機啟用或停用人臉辨識;可按攝影機覆蓋。" + }, + "model_size": { + "label": "模型大小", + "description": "用於人臉嵌入的模型大小(small/large);較大的可能需要 GPU。" + }, + "unknown_score": { + "label": "未知分數閾值", + "description": "低於此距離閾值的人臉被視為潛在匹配(數值越高越嚴格)。" + }, + "detection_threshold": { + "label": "偵測閾值", + "description": "將人臉偵測視為有效所需的最小偵測置信度。" + }, + "recognition_threshold": { + "label": "辨識閾值", + "description": "將兩張人臉視為匹配的人臉嵌入距離閾值。" + }, + "min_area": { + "label": "最小人臉區域", + "description": "需要嘗試進行人臉辨識的人臉偵測框最小大小(像素)。" + }, + "min_faces": { + "label": "最小人臉數", + "description": "在將辨識的子標籤應用於人員之前所需的最小人臉辨識次數。" + }, + "save_attempts": { + "label": "儲存嘗試", + "description": "為最近辨識 UI 保留的人臉辨識嘗試次數。" + }, + "blur_confidence_filter": { + "label": "模糊置信度過濾器", + "description": "根據影像模糊程度調整置信度分數,以減少低品質人臉的誤報。" + }, + "device": { + "label": "裝置", + "description": "這是一個覆蓋選項,用於指定特定裝置。請參閱 https://onnxruntime.ai/docs/execution-providers/ 瞭解更多資訊" + } + }, + "lpr": { + "label": "車牌辨識", + "description": "車牌辨識設定,包括偵測閾值、格式化和已知車牌。", + "enabled": { + "label": "開啟車牌辨識", + "description": "為所有攝影機啟用或停用車牌辨識;可按攝影機覆蓋。" + }, + "model_size": { + "label": "模型大小", + "description": "用於文字偵測/辨識的模型大小,大多數使用者應使用 'small',只有'small'模型支援中文。" + }, + "detection_threshold": { + "label": "偵測閾值", + "description": "開始對疑似車牌執行 OCR 的偵測置信度閾值。" + }, + "min_area": { + "label": "最小車牌區域", + "description": "嘗試辨識所需的最小車牌區域(像素)。" + }, + "recognition_threshold": { + "label": "辨識閾值", + "description": "辨識的車牌文字作為子標籤附加所需的置信度閾值。" + }, + "min_plate_length": { + "label": "最小車牌長度", + "description": "辨識的車牌被視為有效所需的最小字元數。" + }, + "format": { + "label": "車牌格式正則", + "description": "用於驗證辨識的車牌字串是否符合預期格式的可選正則表示式。" + }, + "match_distance": { + "label": "匹配距離", + "description": "將偵測到的車牌與已知車牌比較時允許的字元不匹配數。" + }, + "known_plates": { + "label": "已知車牌", + "description": "要特別追蹤或報警的車牌或正則表示式清單。" + }, + "enhancement": { + "label": "增強級別", + "description": "在 OCR 之前應用於車牌裁剪的增強級別(0-10);較高的值可能不總是改善結果,5 以上的級別可能僅適用於夜間車牌,應謹慎使用。" + }, + "debug_save_plates": { + "label": "儲存除錯車牌", + "description": "儲存車牌裁剪影像用於除錯 LPR 效能。" + }, + "device": { + "label": "裝置", + "description": "這是一個覆蓋選項,用於指定特定裝置。請參閱 https://onnxruntime.ai/docs/execution-providers/ 瞭解更多資訊" + }, + "replace_rules": { + "label": "替換規則", + "description": "用於在匹配之前規範化偵測到的車牌字串的正則替換規則。", + "pattern": { + "label": "正則模式" + }, + "replacement": { + "label": "替換字串" + } + }, + "expire_time": { + "label": "過期秒數", + "description": "未見到的車牌從追蹤器中過期的時間(秒)(僅適用於專用 LPR 攝影機)。" + } + }, + "camera_groups": { + "label": "攝影機分組", + "description": "用於在頁面中組織攝影機的命名攝影機分組配置。", + "cameras": { + "label": "攝影機清單", + "description": "此分組中包含的攝影機名稱陣列。" + }, + "icon": { + "label": "分組圖示", + "description": "在頁面中代表攝影機分組的圖示。" + }, + "order": { + "label": "排序順序", + "description": "用於在頁面中對攝影機分組進行排序的數字順序;數值越大越靠後。" + } + }, + "profiles": { + "label": "設定檔", + "description": "帶有別名的命名設定檔定義。攝影機設定檔必須引用此處定義的名稱。", + "friendly_name": { + "label": "別名", + "description": "在介面中顯示的此設定檔名稱,可以使用中文。" + } + }, + "active_profile": { + "label": "啟用設定檔", + "description": "當前啟用的設定檔名稱。僅在執行時使用,不會寫入 YAML 設定檔中。" + }, + "camera_mqtt": { + "label": "MQTT", + "description": "MQTT 影像釋出設定。", + "enabled": { + "label": "傳送影像", + "description": "為此攝影機啟用將目標快照影像釋出到 MQTT 主題。" + }, + "timestamp": { + "label": "新增時間戳", + "description": "在釋出到 MQTT 的影像上疊加時間戳。" + }, + "bounding_box": { + "label": "新增邊界框", + "description": "在透過 MQTT 釋出的影像上繪製邊界框。" + }, + "crop": { + "label": "裁剪影像", + "description": "將釋出到 MQTT 的影像裁剪到偵測到的目標邊界框。" + }, + "height": { + "label": "影像高度", + "description": "透過 MQTT 釋出的影像調整到的目標高度(像素)。" + }, + "required_zones": { + "label": "必需區域", + "description": "目標必須進入才能釋出 MQTT 影像的區域。" + }, + "quality": { + "label": "JPEG 品質", + "description": "釋出到 MQTT 的影像的 JPEG 品質(0-100)。" + } + }, + "camera_ui": { + "label": "攝影機頁面", + "description": "此攝影機在頁面中的顯示順序和可見性。顯示順序僅影響預設儀表板。如需更精細的控制,請使用“攝影機組”。", + "order": { + "label": "UI 順序", + "description": "用於在頁面中排序攝影機的順序(只會影響預設儀表板和清單);數值越大則在越後面。" + }, + "dashboard": { + "label": "在 UI 中顯示", + "description": "切換此攝影機在 Frigate 頁面中是否可見。停用後需要手動編輯配置才能再次在頁面中檢視此攝影機。" + } + }, + "onvif": { + "label": "ONVIF", + "description": "此攝影機的 ONVIF 連線和 PTZ 自動追蹤設定。", + "host": { + "label": "ONVIF 主機", + "description": "此攝影機 ONVIF 服務的主機(和可選協議)。" + }, + "port": { + "label": "ONVIF 埠", + "description": "ONVIF 服務的埠號。" + }, + "user": { + "label": "ONVIF 使用者名稱", + "description": "ONVIF 身份驗證的使用者名稱;某些裝置需要管理員使用者才能使用 ONVIF。" + }, + "password": { + "label": "ONVIF 密碼", + "description": "ONVIF 身份驗證的密碼。" + }, + "tls_insecure": { + "label": "停用 TLS 驗證", + "description": "跳過 TLS 驗證並停用 ONVIF 的摘要認證(不安全;僅用於安全網路)。" + }, + "profile": { + "label": "ONVIF 設定檔", + "description": "用於 PTZ 控制的指定 ONVIF 媒體配置,將透過 Token 或名稱匹配。如果未手動指定,將自動選擇第一個包含有效 PTZ 配置的媒體配置。" + }, + "autotracking": { + "label": "自動追蹤", + "description": "使用 PTZ 攝影機移動自動追蹤移動目標並使其保持在畫面中心。", + "enabled": { + "label": "開啟自動追蹤", + "description": "啟用或停用偵測目標的自動 PTZ 攝影機追蹤。" + }, + "calibrate_on_startup": { + "label": "啟動時校準", + "description": "在啟動時測量 PTZ 電機速度以提高追蹤精度。Frigate 將在校準後用 movement_weights 更新配置。" + }, + "zooming": { + "label": "變焦模式", + "description": "控制變焦行為:disabled(僅平移/傾斜)、absolute(最相容)或 relative(同時平移/傾斜/變焦)。" + }, + "zoom_factor": { + "label": "變焦因子", + "description": "控制追蹤目標的變焦級別。數值越低保持更多場景可見;數值越高放大更近但可能丟失追蹤。數值範圍 0.1 到 0.75。" + }, + "track": { + "label": "追蹤目標", + "description": "應觸發自動追蹤的目標型別清單。" + }, + "required_zones": { + "label": "必需區域", + "description": "目標必須進入這些區域之一才能開始自動追蹤。" + }, + "return_preset": { + "label": "返回預設", + "description": "追蹤結束後返回的攝影機韌體中配置的 ONVIF 預設名稱。" + }, + "timeout": { + "label": "返回超時", + "description": "失去追蹤後等待多少秒後將攝影機返回到預設位置。" + }, + "movement_weights": { + "label": "移動權重", + "description": "由攝影機校準自動生成的校準值。請勿手動修改。" + }, + "enabled_in_config": { + "label": "原始自動追蹤狀態", + "description": "用於追蹤配置中是否啟用自動追蹤的內部欄位。" + } + }, + "ignore_time_mismatch": { + "label": "忽略時間不匹配", + "description": "忽略 ONVIF 通訊中攝影機和 Frigate 伺服器之間的時間同步差異。" } } } diff --git a/web/public/locales/zh-Hant/config/groups.json b/web/public/locales/zh-Hant/config/groups.json index 0967ef424b..5180463b90 100644 --- a/web/public/locales/zh-Hant/config/groups.json +++ b/web/public/locales/zh-Hant/config/groups.json @@ -1 +1,73 @@ -{} +{ + "audio": { + "global": { + "detection": "全域性偵測", + "sensitivity": "全域性靈敏度" + }, + "cameras": { + "detection": "偵測", + "sensitivity": "靈敏度" + } + }, + "timestamp_style": { + "global": { + "appearance": "全域性外觀" + }, + "cameras": { + "appearance": "外觀" + } + }, + "motion": { + "global": { + "sensitivity": "全域性靈敏度", + "algorithm": "全域性演算法" + }, + "cameras": { + "sensitivity": "靈敏度", + "algorithm": "演算法" + } + }, + "snapshots": { + "global": { + "display": "全域性顯示" + }, + "cameras": { + "display": "顯示" + } + }, + "detect": { + "global": { + "resolution": "全域性解析度", + "tracking": "全域性追蹤" + }, + "cameras": { + "resolution": "解析度", + "tracking": "追蹤" + } + }, + "objects": { + "global": { + "tracking": "全域性追蹤", + "filtering": "全域性篩選" + }, + "cameras": { + "tracking": "追蹤", + "filtering": "篩選" + } + }, + "record": { + "global": { + "retention": "全域性保留", + "events": "全域性事件" + }, + "cameras": { + "retention": "保留", + "events": "事件" + } + }, + "ffmpeg": { + "cameras": { + "cameraFfmpeg": "攝影機特定的 FFmpeg 引數" + } + } +} diff --git a/web/public/locales/zh-Hant/config/validation.json b/web/public/locales/zh-Hant/config/validation.json index 0967ef424b..2c0274b3b6 100644 --- a/web/public/locales/zh-Hant/config/validation.json +++ b/web/public/locales/zh-Hant/config/validation.json @@ -1 +1,32 @@ -{} +{ + "minimum": "必須至少為 {{limit}}", + "maximum": "最大值不能超過 {{limit}}", + "exclusiveMinimum": "必須大於 {{limit}}", + "exclusiveMaximum": "必須小於 {{limit}}", + "minLength": "長度至少為 {{limit}} 個字元", + "maxLength": "長度最多為 {{limit}} 個字元", + "minItems": "至少包含 {{limit}} 項", + "maxItems": "最多包含 {{limit}} 項", + "pattern": "格式無效", + "required": "此欄位為必填項", + "type": "值型別無效", + "enum": "必須是允許的值之一", + "const": "值與預期的常量不匹配", + "uniqueItems": "所有項必須唯一", + "format": "格式無效", + "additionalProperties": "不允許未知屬性", + "oneOf": "必須完全匹配一個允許的模式", + "anyOf": "必須至少匹配一個允許的模式", + "proxy": { + "header_map": { + "roleHeaderRequired": "設定角色對應時必須要有 role 標頭。" + } + }, + "ffmpeg": { + "inputs": { + "rolesUnique": "每個角色只能分配給一個輸入串流。", + "detectRequired": "必須至少有一個輸入串流分配為 'detect' 角色。", + "hwaccelDetectOnly": "只有分配了 detect 角色的輸入串流才能定義硬體加速引數。" + } + } +} diff --git a/web/public/locales/zh-Hant/objects.json b/web/public/locales/zh-Hant/objects.json index 092506cdd4..2dc4ad5e8f 100644 --- a/web/public/locales/zh-Hant/objects.json +++ b/web/public/locales/zh-Hant/objects.json @@ -116,5 +116,14 @@ "nzpost": "紐西蘭郵政(NZ Post)", "postnord": "北歐郵政(PostNord)", "gls": "GLS 快遞", - "dpd": "DPD 快遞" + "dpd": "DPD 快遞", + "canada_post": "加拿大郵政", + "royal_mail": "英國皇家郵政", + "school_bus": "校車", + "skunk": "臭鼬", + "kangaroo": "袋鼠", + "baby": "嬰兒", + "baby_stroller": "嬰兒推車", + "rickshaw": "人力車", + "rodent": "齧齒動物" } diff --git a/web/public/locales/zh-Hant/views/chat.json b/web/public/locales/zh-Hant/views/chat.json index 0967ef424b..fced43e35e 100644 --- a/web/public/locales/zh-Hant/views/chat.json +++ b/web/public/locales/zh-Hant/views/chat.json @@ -1 +1,64 @@ -{} +{ + "documentTitle": "聊天 - Frigate", + "title": "Frigate 聊天", + "subtitle": "你的攝影機管理與智慧分析 AI 助手", + "placeholder": "嘗試問我任何事…", + "error": "出現錯誤,請稍後重試。", + "processing": "進行中…", + "toolsUsed": "使用:{{tools}}", + "showTools": "顯示工具({{count}})", + "hideTools": "隱藏工具", + "call": "呼叫", + "result": "結果", + "arguments": "引數:", + "response": "回應:", + "attachment_chip_label": "在 {{camera}} 的 {{label}}", + "attachment_chip_remove": "移除附件", + "open_in_explore": "從瀏覽中開啟", + "attach_event_aria": "關聯事件 {{eventId}}", + "attachment_picker_paste_label": "或貼上事件 ID", + "attachment_picker_attach": "關聯", + "attachment_picker_placeholder": "關聯一個事件", + "quick_reply_find_similar": "查詢相似抓拍事件", + "quick_reply_tell_me_more": "瞭解更多詳情", + "quick_reply_when_else": "還在哪些時段出現過?", + "quick_reply_find_similar_text": "查詢與此相似的抓拍記錄。", + "quick_reply_tell_me_more_text": "瞭解此條更多詳情。", + "quick_reply_when_else_text": "還在哪些時間出現過?", + "anchor": "來源", + "similarity_score": "相似度", + "no_similar_objects_found": "未找到相似目標。", + "semantic_search_required": "必須啟用語意搜尋才能查詢相似目標。", + "send": "傳送", + "suggested_requests": "嘗試問問:", + "starting_requests": { + "show_recent_events": "檢視近期事件", + "show_camera_status": "顯示攝影機狀態", + "recap": "我不在的時候發生了什麼?", + "watch_camera": "監控攝影機活動" + }, + "starting_requests_prompts": { + "show_recent_events": "顯示最近一小時的事件", + "show_camera_status": "我的攝影機當前狀態如何?", + "recap": "我不在的時候發生了什麼事?", + "watch_camera": "監控前門,有人出現就通知我" + }, + "new_chat": "新對話", + "settings": { + "title": "對話設定", + "show_stats": { + "title": "顯示統計", + "desc": "顯示對話回應的產生速度與上下文大小。", + "while_generating": "產生時", + "always": "一律顯示" + }, + "auto_scroll": { + "title": "自動捲動", + "desc": "隨新訊息到來自動跟進。" + } + }, + "stats": { + "context": "{{tokens}} 個 token", + "tokens_per_second": "{{rate}} tokens/秒" + } +} diff --git a/web/public/locales/zh-Hant/views/classificationModel.json b/web/public/locales/zh-Hant/views/classificationModel.json index 796495f691..6c0a1d9651 100644 --- a/web/public/locales/zh-Hant/views/classificationModel.json +++ b/web/public/locales/zh-Hant/views/classificationModel.json @@ -8,7 +8,8 @@ "trainedModel": "訓練模型成功。", "trainingModel": "已開始模型訓練。", "updatedModel": "已更新模型配置", - "renamedCategory": "成功修改分類名稱為{{name}}" + "renamedCategory": "成功修改分類名稱為{{name}}", + "reclassifiedImage": "成功重新分類圖片" }, "error": { "deleteImageFailed": "刪除失敗:{{errorMessage}}", @@ -18,7 +19,8 @@ "trainingFailed": "模型訓練失敗。請至Frigate 日誌查看詳情。", "trainingFailedToStart": "模型訓練啟動失敗: {{errorMessage}}", "updateModelFailed": "模型更新失敗: {{errorMessage}}", - "renameCategoryFailed": "類別重新命名失敗: {{errorMessage}}" + "renameCategoryFailed": "類別重新命名失敗: {{errorMessage}}", + "reclassifyFailed": "重新分類圖片失敗:{{errorMessage}}" } }, "documentTitle": "分類模型", @@ -95,14 +97,80 @@ "namePlaceholder": "請輸入模型名稱...", "type": "類別", "typeState": "狀態", - "typeObject": "物件" + "typeObject": "物件", + "classificationTypeDesc": "子標籤會為目標標籤新增附加文字(例如:“人員:美團”)。屬性是可搜尋的元資料,獨立儲存在目標的元資訊中。", + "classificationSubLabel": "子標籤", + "classificationAttribute": "屬性", + "classes": "類別", + "states": "狀態", + "classesTip": "瞭解類別", + "classesStateDesc": "定義攝影機區域內可能出現的不同狀態。例如:車庫門的“開啟”和“關閉”。", + "classesObjectDesc": "定義用於分類偵測目標的不同類別。例如:人員分類中的“快遞員”、“居民”、“陌生人”。", + "classPlaceholder": "請輸入分類名稱……", + "errors": { + "nameRequired": "模型名稱為必填項", + "nameLength": "模型名稱長度不能超過 64 個字元", + "nameOnlyNumbers": "模型名稱不能僅包含數字", + "classRequired": "至少需要一個類別", + "classesUnique": "類別名稱必須唯一", + "noneNotAllowed": "不能建立“none”(無標籤)類別", + "stateRequiresTwoClasses": "狀態模型至少需要兩個類別", + "objectLabelRequired": "請選擇一個目標標籤", + "objectTypeRequired": "請選擇一個目標標籤" + } }, "steps": { - "chooseExamples": "選擇範本" + "chooseExamples": "選擇範本", + "nameAndDefine": "名稱與定義", + "stateArea": "狀態區域" + }, + "title": "建立新分類", + "step2": { + "description": "選擇攝影機,併為攝影機定義要監控的區域。模型將對這些區域的狀態進行分類。", + "cameras": "攝影機", + "selectCamera": "選擇攝影機", + "noCameras": "點選 + 符號新增攝影機", + "selectCameraPrompt": "從清單中選擇一個攝影機以定義其偵測區域" + }, + "step3": { + "selectImagesPrompt": "選擇所有屬於 {{className}} 的圖片", + "selectImagesDescription": "點選影像進行選擇,完成該類別後點選“繼續”。", + "allImagesRequired_other": "請對所有圖片進行分類。還有 {{count}} 張圖片需要分類。", + "generating": { + "title": "正在生成樣本圖片", + "description": "Frigate 正在從錄影中提取代表性圖片。這可能需要一些時間……" + }, + "training": { + "title": "正在訓練模型", + "description": "系統正在後臺訓練模型。你可以關閉此對話方塊,訓練完成後模型將自動開始執行。" + }, + "retryGenerate": "重新生成", + "noImages": "未生成樣本影像", + "classifying": "正在分類與訓練……", + "trainingStarted": "已開始模型訓練", + "modelCreated": "模型建立成功。請在“最近分類”頁面為缺失的狀態新增圖片,然後訓練模型。", + "errors": { + "noCameras": "未配置攝影機", + "noObjectLabel": "未選擇目標標籤", + "generateFailed": "示例生成失敗:{{error}}", + "generationFailed": "生成失敗,請重試。", + "classifyFailed": "圖片分類失敗:{{error}}" + }, + "generateSuccess": "樣本圖片生成成功", + "refreshExamples": "生成新示例", + "refreshConfirm": { + "title": "需要生成新示例?", + "description": "此操作將生成一組新的圖片,並清除所有選擇內容(包括之前的所有類別)。你需要為所有類別重新選擇示例。" + }, + "missingStatesWarning": { + "title": "缺失分類示例", + "description": "並非所有類別都有示例。可嘗試生成新示例以查詢缺失的類別,或繼續該步驟,之後透過 “最近分類” 頁面新增圖片。" + } } }, "menu": { - "states": "狀態" + "states": "狀態", + "objects": "目標" }, "noModels": { "object": { @@ -111,7 +179,13 @@ "buttonText": "建立物件模型" }, "state": { - "description": "建立自訂模型,用於監控和分類特定攝影機區域的狀態變化。" + "description": "建立自訂模型,用於監控和分類特定攝影機區域的狀態變化。", + "title": "尚未建立狀態分類模型", + "buttonText": "建立狀態模型" } - } + }, + "categorizeImageAs": "圖片分類為:", + "categorizeImage": "圖片分類", + "reclassifyImageAs": "重新分類圖片為:", + "reclassifyImage": "重新分類圖片" } diff --git a/web/public/locales/zh-Hant/views/events.json b/web/public/locales/zh-Hant/views/events.json index 7d5b4d28c8..bbe3f4bbae 100644 --- a/web/public/locales/zh-Hant/views/events.json +++ b/web/public/locales/zh-Hant/views/events.json @@ -14,7 +14,9 @@ "description": "僅當該攝影機啟用錄製功能時,才能為該攝影機建立審查項目。" } }, - "timeline": "時間線", + "timeline": { + "label": "時間線" + }, "timeline.aria": "選擇時間線", "events": { "label": "事件", @@ -24,7 +26,9 @@ "documentTitle": "審核 - Frigate", "allCameras": "所有鏡頭", "recordings": { - "documentTitle": "錄影 - Frigate" + "documentTitle": "錄影 - Frigate", + "invalidSharedLink": "由於解析錯誤,無法開啟帶時間戳的錄製連結。", + "invalidSharedCamera": "由於攝影機未知或未獲授權,無法開啟帶時間戳的錄製連結。" }, "calendarFilter": { "last24Hours": "過去 24 小時" @@ -63,5 +67,28 @@ "normalActivity": "正常", "needsReview": "待審核", "securityConcern": "安全隱憂", - "select_all": "全選" + "select_all": "全選", + "motionSearch": { + "menuItem": "畫面變動搜尋", + "openMenu": "攝影機選項" + }, + "motionPreviews": { + "menuItem": "檢視畫面變動預覽", + "title": "畫面變動預覽:{{camera}}", + "mobileSettingsTitle": "畫面變動預覽設定", + "mobileSettingsDesc": "調整播放速度和變暗程度,並選擇日期以僅檢視畫面變動的片段。", + "dim": "變暗", + "dimAria": "調整變暗強度", + "dimDesc": "增加變暗程度可以提高畫面變動區域的可見性。", + "speed": "速度", + "speedAria": "選擇預覽播放速度", + "speedDesc": "選擇預覽片段的播放速度。", + "back": "返回", + "empty": "沒有可用的預覽", + "noPreview": "預覽不可用", + "seekAria": "將 {{camera}} 播放器定位到 {{time}}", + "filter": "篩選", + "filterDesc": "選擇區域以僅顯示在這些區域中有畫面變動的片段。", + "filterClear": "清除" + } } diff --git a/web/public/locales/zh-Hant/views/explore.json b/web/public/locales/zh-Hant/views/explore.json index 5987009635..671e9201bf 100644 --- a/web/public/locales/zh-Hant/views/explore.json +++ b/web/public/locales/zh-Hant/views/explore.json @@ -112,7 +112,8 @@ "attributes": "分類屬性", "title": { "label": "標題" - } + }, + "scoreInfo": "分數資訊" }, "trackedObjectDetails": "追蹤物件詳情", "type": { @@ -221,12 +222,22 @@ "viewTrackingDetails": { "label": "檢視追蹤詳細資訊", "aria": "顯示追蹤詳細資訊" + }, + "debugReplay": { + "label": "除錯回放", + "aria": "在除錯回放檢視中檢視此被追蹤物件" + }, + "more": { + "aria": "更多" } }, "dialog": { "confirmDelete": { "title": "確認刪除", "desc": "刪除此追蹤物件將移除截圖、所有已保存的嵌入,以及所有相關的追蹤詳情。歷史記錄中的錄影不會被刪除。

你確定要刪除嗎?" + }, + "toast": { + "error": "刪除該追蹤目標時出錯:{{errorMessage}}" } }, "noTrackedObjects": "找不到追蹤物件", @@ -268,7 +279,10 @@ "zones": "區域", "ratio": "比例", "score": "分數", - "area": "面積" + "area": "面積", + "computedScore": "計算得分", + "topScore": "最高得分", + "toggleAdvancedScores": "切換高階分數" } }, "annotationSettings": { @@ -294,5 +308,8 @@ }, "aiAnalysis": { "title": "AI 分析" + }, + "concerns": { + "label": "風險等級" } } diff --git a/web/public/locales/zh-Hant/views/exports.json b/web/public/locales/zh-Hant/views/exports.json index 3d3f9e87c6..0b376bcfd2 100644 --- a/web/public/locales/zh-Hant/views/exports.json +++ b/web/public/locales/zh-Hant/views/exports.json @@ -2,7 +2,9 @@ "search": "搜尋", "documentTitle": "匯出 - Frigate", "noExports": "找不到匯出內容", - "deleteExport": "刪除匯出內容", + "deleteExport": { + "label": "刪除匯出" + }, "editExport": { "saveExport": "儲存匯出內容", "title": "重新命名匯出內容", @@ -10,7 +12,10 @@ }, "toast": { "error": { - "renameExportFailed": "重新命名匯出內容失敗:{{errorMessage}}" + "renameExportFailed": "重新命名匯出內容失敗:{{errorMessage}}", + "assignCaseFailed": "更新案件分配失敗:{{errorMessage}}", + "caseSaveFailed": "儲存案件失敗:{{errorMessage}}", + "caseDeleteFailed": "刪除案件失敗:{{errorMessage}}" } }, "deleteExport.desc": "你確定要刪除 {{exportName}} 嗎?", @@ -18,6 +23,106 @@ "shareExport": "分享匯出", "downloadVideo": "下載影片", "editName": "編輯名稱", - "deleteExport": "刪除匯出" + "deleteExport": "刪除匯出", + "assignToCase": "加入案件", + "removeFromCase": "從案件中移除" + }, + "headings": { + "cases": "案件", + "uncategorizedExports": "未分類匯出項" + }, + "toolbar": { + "newCase": "新案件", + "addExport": "新匯出", + "editCase": "編輯案件", + "deleteCase": "刪除案件" + }, + "deleteCase": { + "label": "刪除案件", + "desc": "你確定要刪除 {{caseName}} 嗎?", + "descKeepExports": "匯出檔案將繼續保留為未分類匯出。", + "descDeleteExports": "此案件中的所有匯出項都將被永久刪除。", + "deleteExports": "同時刪除匯出檔案" + }, + "caseDialog": { + "title": "加入案件", + "description": "選擇現有案件或建立新案件。", + "selectLabel": "案件", + "newCaseOption": "建立新案件", + "nameLabel": "案件名稱", + "descriptionLabel": "描述" + }, + "caseCard": { + "emptyCase": "暫無匯出檔案" + }, + "jobCard": { + "defaultName": "{{camera}} 匯出", + "queued": "佇列中", + "running": "執行中", + "preparing": "準備中", + "copying": "複製中", + "encoding": "編碼中", + "encodingRetry": "重試編碼中", + "finalizing": "正在完成" + }, + "caseView": { + "noDescription": "沒有描述", + "createdAt": "已建立 {{value}}", + "exportCount_one": "1 個匯出", + "exportCount_other": "{{count}} 個匯出", + "cameraCount_one": "1 個攝影機", + "cameraCount_other": "{{count}} 個攝影機", + "showMore": "顯示更多", + "showLess": "顯示更少", + "emptyTitle": "該案件為空", + "emptyDescription": "將現有未分類的匯出新增進來,以便整理該條目。", + "emptyDescriptionNoExports": "目前沒有可新增的未分類匯出項。" + }, + "caseEditor": { + "createTitle": "建立案件", + "editTitle": "編輯案件", + "namePlaceholder": "案件名稱", + "descriptionPlaceholder": "為該案件新增備註或相關說明" + }, + "addExportDialog": { + "title": "將匯出新增到 {{caseName}}", + "searchPlaceholder": "搜尋未分類的匯出項", + "empty": "未找到匹配的未分類匯出。", + "addButton_one": "新增 1 個匯出", + "addButton_other": "新增 {{count}} 個匯出", + "adding": "新增中…" + }, + "selected_one": "已選擇 {{count}} 個", + "selected_other": "已選擇 {{count}} 個", + "bulkActions": { + "addToCase": "新增至案件", + "moveToCase": "移動至案件", + "removeFromCase": "從案件中移除", + "delete": "刪除", + "deleteNow": "立即刪除" + }, + "bulkDelete": { + "title": "刪除匯出", + "desc_one": "你確定要刪除 {{count}} 個匯出嗎?", + "desc_other": "確定要刪除 {{count}} 個匯出嗎?" + }, + "bulkRemoveFromCase": { + "title": "從案件中移除", + "desc_one": "你確定要從該案件中移除這 {{count}} 個匯出嗎?", + "desc_other": "你確定要從該案件中移除這 {{count}} 個匯出嗎?", + "descKeepExports": "匯出將被移至未分類。", + "descDeleteExports": "匯出將被永久刪除。", + "deleteExports": "選擇刪除匯出" + }, + "bulkToast": { + "success": { + "delete": "已刪除匯出", + "reassign": "已更新案件分配", + "remove": "已從案件中移除匯出" + }, + "error": { + "deleteFailed": "刪除匯出失敗:{{errorMessage}}", + "reassignFailed": "更新案件分配失敗:{{errorMessage}}" + } } } diff --git a/web/public/locales/zh-Hant/views/faceLibrary.json b/web/public/locales/zh-Hant/views/faceLibrary.json index 938bf15818..496e1631db 100644 --- a/web/public/locales/zh-Hant/views/faceLibrary.json +++ b/web/public/locales/zh-Hant/views/faceLibrary.json @@ -2,7 +2,8 @@ "description": { "addFace": "上傳您的第一張照片至臉部資料庫以新增一個新的集合。", "placeholder": "輸入此集合的名稱", - "invalidName": "無效的名稱。名稱只能包涵英數字、空格、撇(')、底線(_)及連字號(-)。" + "invalidName": "無效的名稱。名稱只能包涵英數字、空格、撇(')、底線(_)及連字號(-)。", + "nameCannotContainHash": "名稱中不允許包含“#”符號。" }, "details": { "person": "人", @@ -38,7 +39,11 @@ "title": "最近的識別紀錄", "aria": "選擇最近的識別紀錄", "empty": "最近沒有辨識人臉的操作", - "titleShort": "最近" + "titleShort": "最近", + "emptyNoLibrary": { + "title": "上傳一張人臉", + "description": "您必須先在資料庫中加入至少一張人臉,才能使用人臉辨識功能。" + } }, "selectFace": "選擇人臉", "deleteFaceLibrary": { @@ -82,7 +87,8 @@ "deletedName_other": "{{count}} 個人臉已成功刪除。", "renamedFace": "成功將人臉重新命名為 {{name}}", "trainedFace": "成功訓練人臉。", - "updatedFaceScore": "成功更新人臉分數{{name}}({{score}})。" + "updatedFaceScore": "成功更新人臉分數{{name}}({{score}})。", + "reclassifiedFace": "重新分類人臉成功。" }, "error": { "uploadingImageFailed": "上傳圖片失敗:{{errorMessage}}", @@ -91,7 +97,10 @@ "deleteNameFailed": "刪除名稱失敗:{{errorMessage}}", "renameFaceFailed": "重新命名人臉失敗:{{errorMessage}}", "trainFailed": "訓練失敗:{{errorMessage}}", - "updateFaceScoreFailed": "更新人臉分數失敗:{{errorMessage}}" + "updateFaceScoreFailed": "更新人臉分數失敗:{{errorMessage}}", + "reclassifyFailed": "重新分類人臉失敗:{{errorMessage}}" } - } + }, + "reclassifyFaceAs": "將人臉重新分類為:", + "reclassifyFace": "重新分類人臉" } diff --git a/web/public/locales/zh-Hant/views/live.json b/web/public/locales/zh-Hant/views/live.json index a839b4b881..d1e28743fd 100644 --- a/web/public/locales/zh-Hant/views/live.json +++ b/web/public/locales/zh-Hant/views/live.json @@ -1,5 +1,7 @@ { - "documentTitle": "即時畫面 - Frigate", + "documentTitle": { + "default": "即時監控 - Frigate" + }, "documentTitle.withCamera": "{{camera}} - 即時畫面 - Frigate", "lowBandwidthMode": "低流量模式", "twoWayTalk": { @@ -11,7 +13,8 @@ "clickMove": { "label": "點擊畫面以置中鏡頭", "enable": "啟用點擊移動", - "disable": "停用點擊移動" + "disable": "停用點擊移動", + "enableWithZoom": "開啟點選移動 / 拖動縮放功能" }, "left": { "label": "向左移動 PTZ 鏡頭" @@ -67,7 +70,8 @@ }, "recording": { "enable": "啟用錄影", - "disable": "停用錄影" + "disable": "停用錄影", + "disabledInConfig": "必須先在該攝影機的設定中開啟錄製功能。" }, "snapshots": { "enable": "啟用截圖", @@ -134,6 +138,9 @@ "playInBackground": { "label": "背景播放", "tips": "啟用此選項以在播放器被隱藏時繼續播放串流。" + }, + "debug": { + "picker": "除錯模式下無法切換影片流。除錯將始終使用偵測(detect)功能的影片流。" } }, "cameraSettings": { @@ -143,7 +150,8 @@ "recording": "錄影", "snapshots": "截圖", "audioDetection": "音訊偵測", - "autotracking": "自動追蹤" + "autotracking": "自動追蹤", + "transcription": "音訊轉錄" }, "history": { "label": "顯示歷史影像" @@ -172,5 +180,24 @@ "noVideoSource": "沒有可用的影片資源以擷取快照。", "captureFailed": "快照擷取失敗。", "downloadStarted": "已開始下載快照。" + }, + "noCameras": { + "title": "未設定攝影機", + "description": "準備開始連線攝影機至 Frigate 。", + "buttonText": "新增攝影機", + "restricted": { + "title": "無可用攝影機", + "description": "你沒有權限檢視此分組中的任何攝影機。" + }, + "default": { + "title": "沒有配置攝影機", + "description": "現在就將攝影機接入到 Frigate 吧。", + "buttonText": "新增攝影機" + }, + "group": { + "title": "攝影機組目前為空", + "description": "該攝影機組未分配或啟動了攝影機。", + "buttonText": "管理攝影機組" + } } } diff --git a/web/public/locales/zh-Hant/views/motionSearch.json b/web/public/locales/zh-Hant/views/motionSearch.json index 0967ef424b..a83835afa0 100644 --- a/web/public/locales/zh-Hant/views/motionSearch.json +++ b/web/public/locales/zh-Hant/views/motionSearch.json @@ -1 +1,73 @@ -{} +{ + "documentTitle": "變動搜尋 - Frigate", + "title": "畫面變動搜尋", + "description": "繪製一個多邊形以劃定感興趣區域,並指定時間範圍,檢索該區域內的動態變化。", + "selectCamera": "畫面變動搜尋正在載入中", + "startSearch": "開始搜尋", + "searchStarted": "搜尋已開始", + "searchCancelled": "搜尋已取消", + "cancelSearch": "取消", + "searching": "搜尋進行中。", + "searchComplete": "搜尋完成", + "noResultsYet": "在所選區域內執行搜尋,查詢異常變化", + "noChangesFound": "所選區域未偵測到像素變化", + "changesFound_other": "偵測到 {{count}} 處畫面變化", + "framesProcessed": "已處理 {{count}} 幀畫面", + "jumpToTime": "跳轉到該時間", + "results": "結果", + "showSegmentHeatmap": "熱力圖", + "newSearch": "新的搜尋", + "clearResults": "清除結果", + "clearROI": "清除多邊形選區", + "polygonControls": { + "points_other": "{{count}} 個點位", + "undo": "撤銷上一個點位", + "reset": "重設多邊形" + }, + "motionHeatmapLabel": "畫面變動熱力圖", + "dialog": { + "title": "畫面變動搜尋", + "cameraLabel": "攝影機", + "previewAlt": "{{camera}} 攝影機即時預覽" + }, + "timeRange": { + "title": "搜尋範圍", + "start": "開始時間", + "end": "結束時間" + }, + "settings": { + "title": "搜尋設定", + "parallelMode": "並行模式", + "parallelModeDesc": "同時掃描多個錄製片段(速度更快,但 CPU 佔用會顯著升高)", + "threshold": "靈敏度閾值", + "thresholdDesc": "數值越低,可偵測到越小的變化(取值範圍 1-255)", + "minArea": "最小變化區域", + "minAreaDesc": "最小感興趣區域變化佔比,達到該比例才會判定為有效變動", + "frameSkip": "幀跳過", + "frameSkipDesc": "每隔 N 幀進行一次處理。將該值設定為攝影機的幀率,即可實現每秒處理一幀畫面(例如:5 幀 / 秒的攝影機設為 5,30 幀 / 秒的攝影機設為 30)。數值越高處理速度越快,但有可能遺漏短時移動偵測事件。", + "maxResults": "最大結果數", + "maxResultsDesc": "匹配到設定條數的錄影事件後,就自動停止檢索" + }, + "errors": { + "noCamera": "請選擇攝影機", + "noROI": "請繪製感興趣的區域", + "noTimeRange": "請選擇時間範圍", + "invalidTimeRange": "結束時間必須在開始時間之後", + "searchFailed": "搜尋失敗:{{message}}", + "polygonTooSmall": "多邊形至少需要 3 個頂點", + "unknown": "未知錯誤" + }, + "changePercentage": "{{percentage}}% 已變化", + "metrics": { + "title": "搜尋指標", + "segmentsScanned": "已掃描片段數", + "segmentsProcessed": "已處理", + "segmentsSkippedInactive": "已跳過(無活動)", + "segmentsSkippedHeatmap": "已跳過(不在感興趣區域)", + "fallbackFullRange": "備用全範圍掃描", + "framesDecoded": "畫面已解碼", + "wallTime": "搜尋時間", + "segmentErrors": "片段異常", + "seconds": "{{seconds}} 秒" + } +} diff --git a/web/public/locales/zh-Hant/views/replay.json b/web/public/locales/zh-Hant/views/replay.json index 0967ef424b..afe2cee4c6 100644 --- a/web/public/locales/zh-Hant/views/replay.json +++ b/web/public/locales/zh-Hant/views/replay.json @@ -1 +1,59 @@ -{} +{ + "title": "除錯回放", + "description": "回放攝影機錄影以供除錯。目標清單會延時展示已偵測目標的彙總資訊,訊息分頁則即時展示回放錄影對應的 Frigate 內部日誌資訊流。", + "websocket_messages": "訊息", + "dialog": { + "title": "開始除錯回放", + "description": "建立臨時回放攝影機,迴圈播放歷史錄製影片,用於除錯目標偵測與追蹤相關問題。臨時回放的攝影機將沿用原攝影機的偵測配置。請選擇一個時間範圍開始。", + "camera": "原攝影機", + "timeRange": "時間範圍", + "preset": { + "1m": "最後 1 分鐘", + "5m": "最後 5 分鐘", + "timeline": "從時間線", + "custom": "自訂" + }, + "startButton": "開始回放", + "selectFromTimeline": "選擇", + "starting": "開始回放…", + "startLabel": "開始", + "endLabel": "結束", + "toast": { + "error": "除錯回放啟動失敗:{{error}}", + "alreadyActive": "已有回放工作階段正在執行", + "stopError": "除錯回放停止失敗:{{error}}", + "goToReplay": "進入回放" + } + }, + "page": { + "noSession": "沒有正在進行的除錯回放工作階段", + "noSessionDesc": "從歷史回放頁面啟動除錯回放:點選工具列中的操作按鈕,選擇除錯回放即可。", + "goToRecordings": "檢視歷史記錄", + "preparingClip": "正在準備片段…", + "preparingClipDesc": "Frigate 正在拼接所選時間範圍的錄影片段。時間跨度較大時,該過程可能需要一分鐘左右。", + "startingCamera": "開始除錯回放中…", + "startError": { + "title": "除錯回放啟動失敗", + "back": "返回歷史記錄" + }, + "sourceCamera": "源攝影機", + "replayCamera": "回放攝影機", + "initializingReplay": "初始化除錯回放中…", + "stoppingReplay": "正在停止除錯回放…", + "stopReplay": "停止回放", + "confirmStop": { + "title": "要停止除錯回放嗎?", + "description": "這將終止工作階段並清除所有臨時資料。是否確定?", + "confirm": "停止回放", + "cancel": "取消" + }, + "activity": "活動", + "objects": "目標清單", + "audioDetections": "音訊偵測", + "noActivity": "未偵測到活動", + "activeTracking": "活動追蹤中", + "noActiveTracking": "沒有活動追蹤", + "configuration": "配置", + "configurationDesc": "微調除錯回放攝影機的移動偵測與目標追蹤引數。本次調整不會儲存到你的 Frigate 設定檔中。" + } +} diff --git a/web/public/locales/zh-Hant/views/settings.json b/web/public/locales/zh-Hant/views/settings.json index 97829f5360..5252467276 100644 --- a/web/public/locales/zh-Hant/views/settings.json +++ b/web/public/locales/zh-Hant/views/settings.json @@ -11,7 +11,12 @@ "motionTuner": "移動偵測調教器 - Frigate", "object": "除錯 - Frigate", "cameraManagement": "管理鏡頭 - Frigate", - "cameraReview": "相機預覽設置 - Frigate" + "cameraReview": "相機預覽設置 - Frigate", + "globalConfig": "全域性配置 - Frigate", + "cameraConfig": "攝影機配置 - Frigate", + "detectorsAndModel": "偵測器與模型 - Frigate", + "maintenance": "維護 - Frigate", + "profiles": "設定檔 - Frigate" }, "menu": { "ui": "使用者介面", @@ -26,7 +31,65 @@ "triggers": "觸發", "cameraManagement": "管理", "cameraReview": "預覽", - "roles": "角色" + "roles": "角色", + "general": "常規", + "globalConfig": "全域性配置", + "system": "系統", + "integrations": "整合", + "uiSettings": "介面設定", + "profiles": "設定檔", + "globalDetect": "目標偵測", + "globalRecording": "錄製", + "globalSnapshots": "快照", + "globalFfmpeg": "FFmpeg", + "globalMotion": "畫面變動偵測", + "globalObjects": "目標", + "globalReview": "審閱", + "globalAudioEvents": "音訊偵測", + "globalLivePlayback": "即時監控觀看", + "globalTimestampStyle": "時間戳樣式", + "systemDatabase": "資料庫", + "systemTls": "TLS加密連結", + "systemAuthentication": "驗證", + "systemNetworking": "網路", + "systemProxy": "代理", + "systemUi": "介面", + "systemLogging": "日誌", + "systemEnvironmentVariables": "環境變數", + "systemTelemetry": "遙測", + "systemBirdseye": "鳥瞰圖", + "systemFfmpeg": "FFmpeg", + "systemDetectorsAndModel": "偵測器與模型", + "systemMqtt": "MQTT", + "systemGo2rtcStreams": "go2rtc 影片流", + "integrationSemanticSearch": "語意搜尋", + "integrationGenerativeAi": "生成式 AI", + "integrationFaceRecognition": "人臉辨識", + "integrationLpr": "車牌辨識", + "integrationObjectClassification": "目標分類", + "integrationAudioTranscription": "音訊轉錄", + "cameraDetect": "目標偵測", + "cameraFfmpeg": "FFmpeg", + "cameraRecording": "錄製", + "cameraSnapshots": "快照", + "cameraMotion": "畫面變動偵測", + "cameraObjects": "目標", + "cameraConfigReview": "審閱", + "cameraAudioEvents": "音訊偵測", + "cameraAudioTranscription": "音訊轉錄", + "cameraNotifications": "通知", + "cameraLivePlayback": "即時監控觀看", + "cameraBirdseye": "鳥瞰圖", + "cameraFaceRecognition": "人臉辨識", + "cameraLpr": "車牌辨識", + "cameraMqttConfig": "MQTT", + "cameraOnvif": "ONVIF", + "cameraUi": "攝影機頁面", + "cameraTimestampStyle": "時間戳樣式", + "cameraMqtt": "攝影機 MQTT", + "maintenance": "維護", + "mediaSync": "媒體同步", + "regionGrid": "區域網格" }, "dialog": { "unsavedChanges": { @@ -103,22 +166,56 @@ "modelSize": { "label": "模型大小", "small": { - "title": "小" + "title": "小", + "desc": "將使用 模型。該模型使用的記憶體較少,在 CPU 上也能較快的執行,品質較好。" + }, + "desc": "用於語意搜尋的語言模型大小。", + "large": { + "title": "大", + "desc": "將使用 模型。該選項使用了完整的 Jina 模型,條件允許的情況下將自動使用 GPU 執行。" } }, "title": "語意搜尋", "desc": "Frigate 中的語意搜尋功能可讓您使用圖像本身、使用者定義的文字描述或自動產生的描述,在審核專案中尋找追蹤物件。", "reindexNow": { "label": "立即重新索引", - "desc": "重新索引會為所有追蹤物件重新產生嵌入向量。此過程在背景運行,可能會佔用大量 CPU 資源,並且耗時較長,具體取決於追蹤物件的數量。" + "desc": "重新索引會為所有追蹤物件重新產生嵌入向量。此過程在背景運行,可能會佔用大量 CPU 資源,並且耗時較長,具體取決於追蹤物件的數量。", + "confirmTitle": "確認重建索引", + "confirmDesc": "確定要為所有追蹤目標重建特徵向量索引資訊嗎?此過程將在後臺進行,但可能會導致CPU滿載並耗費較長時間。您可以在 瀏覽 頁面檢視進度。", + "confirmButton": "重建索引", + "success": "重建索引已成功啟動。", + "alreadyInProgress": "重建索引已在執行中。", + "error": "啟動重建索引失敗:{{errorMessage}}" } }, "faceRecognition": { - "title": "人臉識別" + "title": "人臉識別", + "desc": "人臉辨識功能允許為人物分配名稱,當辨識到他們的面孔時,Frigate 會將人物的名字作為子標籤進行分配。這些資訊會顯示在介面、過濾器以及通知中。", + "modelSize": { + "label": "模型大小", + "desc": "用於人臉辨識的模型大小。", + "small": { + "title": "小", + "desc": "將使用模型。該選項採用 FaceNet 人臉特徵提取模型,可在大多數 CPU 上高效執行。" + }, + "large": { + "title": "大", + "desc": "將使用模型。該選項使用 ArcFace 人臉特徵提取模型,條件允許的情況下將自動使用 GPU 執行。" + } + } }, "birdClassification": { "title": "鳥類分類", "desc": "鳥類分類功能使用量化的 TensorFlow 模型識別已知鳥類。識別出已知鳥類後,其通用名稱將作為子標籤添加。此資訊會顯示在使用者介面、篩選器以及通知中。" + }, + "licensePlateRecognition": { + "title": "車牌辨識", + "desc": "Frigate 可以辨識車輛的車牌,並自動將偵測到的字元新增到 辨識的車牌(recognized_license_plate)欄位中,或將已知車牌對應的名稱作為子標籤新增到該車輛目標中。該功能常用於辨識駛入車道的車輛車牌或經過街道的車輛車牌。" + }, + "restart_required": "需要重啟(增強功能設定已儲存)", + "toast": { + "success": "增強功能設定已儲存。請重啟 Frigate 以應用更改。", + "error": "配置更改儲存失敗:{{errorMessage}}" } }, "cameraWizard": { @@ -126,10 +223,12 @@ "testResultLabels": { "resolution": "解析度", "video": "影像", - "audio": "語音" + "audio": "語音", + "fps": "幀率" }, "commonErrors": { - "testFailed": "串流測試失敗: {{error}}" + "testFailed": "串流測試失敗: {{error}}", + "noUrl": "請提供正確的影片流地址" }, "step1": { "description": "輸入相機詳細資訊並選擇自動偵測或手動選擇相機品牌。", @@ -142,15 +241,1539 @@ "password": "密碼", "passwordPlaceholder": "選填", "selectTransport": "選擇協議", - "cameraBrand": "相機品牌" + "cameraBrand": "相機品牌", + "selectBrand": "選擇攝影機品牌用於生成URL地址模板", + "customUrl": "自訂影片流地址", + "brandInformation": "品牌資訊", + "brandUrlFormat": "對於採用RTSP URL格式的攝影機,其格式為:{{exampleUrl}}", + "customUrlPlaceholder": "rtsp://使用者名稱:密碼@主機或IP地址:埠/路徑", + "connectionSettings": "連線設定", + "detectionMethod": "影片流偵測方法", + "onvifPort": "ONVIF 埠", + "probeMode": "探測攝影機", + "manualMode": "手動選擇", + "detectionMethodDescription": "如果攝影機支援 ONVIF 協議,將使用該協議探測攝影機,以自動獲取攝影機影片流地址;若不支援,也可手動選擇攝影機品牌來使用預設地址。如需輸入自訂RTSP地址,請選擇“手動選擇”並選擇“其他”選項。", + "onvifPortDescription": "對於支援ONVIF協議的攝影機,該埠通常為80或8080。", + "useDigestAuth": "使用摘要認證", + "useDigestAuthDescription": "為 ONVIF 協議啟用 HTTP 摘要認證。部分攝影機可能需要專用的 ONVIF 使用者名稱/密碼,而非預設的 admin 帳戶。", + "errors": { + "brandOrCustomUrlRequired": "請選擇攝影機品牌並配置主機/ IP 地址,或選擇“其他”後手動配置影片流地址", + "nameRequired": "攝影機名稱為必填項", + "nameLength": "攝影機名稱要少於64個字元", + "invalidCharacters": "攝影機名稱內有不允許使用的字元", + "nameExists": "該攝影機名稱已存在", + "customUrlRtspRequired": "自訂 URL 必須以“rtsp://”開頭;對於非 RTSP 協議的攝影機流,需手動新增至設定檔。" + } + }, + "description": "請按照以下步驟新增攝影機至 Frigate 中。", + "steps": { + "nameAndConnection": "名稱與連線", + "probeOrSnapshot": "探測或快照", + "streamConfiguration": "影片流配置", + "validationAndTesting": "驗證與測試" + }, + "save": { + "success": "已儲存新攝影機 {{cameraName}}。", + "failure": "儲存攝影機 {{cameraName}} 遇到了錯誤。" + }, + "step2": { + "description": "將根據你選擇的偵測方式,將會自動查詢攝影機可用流配置,或進行手動配置。", + "testSuccess": "影片流測試成功!", + "testFailed": "連線測試失敗,請檢查您的輸入後重試。", + "testFailedTitle": "測試失敗", + "streamDetails": "影片流詳情", + "probing": "正在偵測攝影機中……", + "retry": "重試", + "testing": { + "probingMetadata": "正在查詢攝影機引數……", + "fetchingSnapshot": "正在獲取攝影機快照……" + }, + "probeFailed": "偵測攝影機失敗:{{error}}", + "probingDevice": "尋找裝置中……", + "probeSuccessful": "偵測成功", + "probeError": "偵測遇到錯誤", + "probeNoSuccess": "偵測未成功", + "deviceInfo": "裝置資訊", + "manufacturer": "製造商", + "model": "型號", + "firmware": "韌體", + "profiles": "設定檔", + "ptzSupport": "支援 PTZ", + "autotrackingSupport": "支援自動追蹤", + "presets": "預設配置", + "rtspCandidates": "RTSP候選地址", + "rtspCandidatesDescription": "透過攝影機自動偵測發現了以下RTSP地址。測試連線以檢視影片流引數。", + "noRtspCandidates": "未從攝影機偵測到任何 RTSP 地址。可能是你的帳號密碼錯誤,或者攝影機不支援 ONVIF 協議,亦或是當前採用的 RTSP 地址獲取方式無效。請返回上一步,嘗試手動輸入RTSP地址。", + "candidateStreamTitle": "候選{{number}}", + "useCandidate": "使用", + "uriCopy": "複製", + "uriCopied": "地址已複製到剪貼簿", + "testConnection": "測試連線", + "toggleUriView": "點選切換完整 URI 顯示", + "connected": "已連線", + "notConnected": "未連線", + "errors": { + "hostRequired": "主機/IP地址為必填" + } + }, + "step3": { + "description": "為你的攝影機配置影片流功能並新增額外影片流。", + "streamsTitle": "攝影機影片流", + "addStream": "新增影片流", + "addAnotherStream": "新增其他影片流", + "streamTitle": "{{number}} 號影片流", + "streamUrl": "影片流地址", + "streamUrlPlaceholder": "rtsp://使用者名稱:密碼@主機:埠/路徑", + "selectStream": "選擇一個影片流", + "searchCandidates": "搜尋候選項……", + "noStreamFound": "沒有找到影片流", + "url": "URL地址", + "resolution": "解析度", + "selectResolution": "選擇解析度", + "quality": "品質", + "selectQuality": "選擇品質", + "roles": "功能", + "roleLabels": { + "detect": "目標偵測", + "record": "錄製", + "audio": "音訊偵測" + }, + "testStream": "測試連線", + "testSuccess": "影片流測試成功!", + "testFailed": "影片流測試失敗", + "testFailedTitle": "測試失敗", + "connected": "已連線", + "notConnected": "未連線", + "featuresTitle": "功能特性", + "go2rtc": "減少與攝影機的連線數", + "detectRoleWarning": "必須得有一個影片流設定了“偵測”功能才能繼續操作。", + "rolesPopover": { + "title": "影片流功能", + "detect": "用於目標偵測的主碼流。", + "record": "根據配置設定儲存影片流片段。", + "audio": "用於音訊偵測的音影片流。" + }, + "featuresPopover": { + "title": "影片流功能特性", + "description": "使用 go2rtc 中繼轉流功能,減少與攝影機的網路連線數,提升效率。" + } + }, + "step4": { + "description": "將進行儲存新攝影機配置前的最終驗證與分析,請在儲存前確保所有影片流均已連線。", + "validationTitle": "影片流驗證", + "connectAllStreams": "連線所有影片流", + "reconnectionSuccess": "重新連線成功。", + "reconnectionPartial": "部分影片流重新連線失敗。", + "streamUnavailable": "影片流預覽不可用", + "reload": "重新載入", + "connecting": "連線中……", + "streamTitle": "影片流 {{number}}", + "valid": "透過", + "failed": "失敗", + "notTested": "未測試", + "connectStream": "連線", + "connectingStream": "連線中", + "disconnectStream": "斷開連線", + "estimatedBandwidth": "預估頻寬", + "roles": "功能", + "ffmpegModule": "使用影片流相容模式", + "ffmpegModuleDescription": "若多次嘗試後仍無法載入影片流,可嘗試啟用此功能。啟用後,Frigate 將透過 go2rtc 呼叫 ffmpeg 模組。這可能會提升與部分攝影機影片流的相容性。", + "none": "無", + "error": "錯誤", + "streamValidated": "影片流 {{number}} 驗證成功", + "streamValidationFailed": "影片流 {{number}} 驗證失敗", + "saveAndApply": "儲存新攝影機", + "saveError": "配置無效,請檢查您的設定。", + "issues": { + "title": "影片流驗證", + "videoCodecGood": "影片編解碼器為 {{codec}}。", + "audioCodecGood": "音訊編解碼器為 {{codec}}。", + "resolutionHigh": "使用 {{resolution}} 解析度可能導致資源使用率增加。", + "resolutionLow": "{{resolution}} 解析度可能過低,難以可靠偵測小型目標或物體。", + "resolutionUnknown": "無法偵測此影片流的解析度。你需要在設定或設定檔中手動指定偵測解析度。", + "noAudioWarning": "偵測到該影片流無音訊訊號,錄製影片將沒有聲音。", + "audioCodecRecordError": "錄製功能需要 AAC 音訊編解碼器以實現音訊支援。", + "audioCodecRequired": "要實現音訊偵測功能,必須要有音訊流。", + "restreamingWarning": "為錄製流開啟“減少與攝影機的連線數”可能會略微增加 CPU 使用率。", + "brands": { + "reolink-rtsp": "不建議使用 Reolink 的 RTSP 協議。請在攝影機後臺設定中啟用 HTTP協議,並重新啟動向導。", + "reolink-http": "Reolink HTTP 影片流應該使用 FFmpeg 以獲得更好的相容性,為此影片流啟用“使用流相容模式”。" + }, + "dahua": { + "substreamWarning": "子碼流1當前被鎖定為低解析度。多數大華、安訊士、EmpireTech品牌的攝影機都支援額外的子碼流,這些子碼流需要在攝影機設定中手動啟用。如果你的裝置支援,建議你檢查並使用這些高解析度子碼流。" + }, + "hikvision": { + "substreamWarning": "子碼流1當前被鎖定為低解析度。多數海康威視的攝影機都支援額外的子碼流,這些子碼流需要在攝影機設定中手動啟用。如果你的裝置支援,建議你檢查並使用這些高解析度子碼流。" + } + } } }, "triggers": { "toast": { "error": { "deleteTriggerFailed": "刪除觸發器失敗:{{errorMessage}}", - "updateTriggerFailed": "更新觸發器失敗:{{errorMessage}}" + "updateTriggerFailed": "更新觸發器失敗:{{errorMessage}}", + "createTriggerFailed": "建立觸發器失敗:{{errorMessage}}" + }, + "success": { + "createTrigger": "觸發器 {{name}} 建立成功。", + "updateTrigger": "觸發器 {{name}} 更新成功。", + "deleteTrigger": "觸發器 {{name}} 已刪除。" } + }, + "documentTitle": "觸發器", + "semanticSearch": { + "title": "語意搜尋已關閉", + "desc": "必須啟用語意搜尋功能才能使用觸發器。" + }, + "management": { + "title": "觸發器", + "desc": "管理 {{camera}} 的觸發器。你可以選擇“縮圖”型別,將透過與追蹤目標相似的縮圖來觸發;也可以透過“描述”型別,與你描述的文字相似來觸發(中文描述需要使用 jina v2模型,對配置要求更高)。" + }, + "addTrigger": "新增觸發器", + "table": { + "name": "名稱", + "type": "型別", + "content": "觸發內容", + "threshold": "閾值", + "actions": "動作", + "noTriggers": "此攝影機未配置任何觸發器。", + "edit": "編輯", + "deleteTrigger": "刪除觸發器", + "lastTriggered": "最後一個觸發項" + }, + "type": { + "thumbnail": "縮圖", + "description": "描述" + }, + "actions": { + "notification": "傳送通知", + "sub_label": "新增子標籤", + "attribute": "新增屬性" + }, + "dialog": { + "createTrigger": { + "title": "建立觸發器", + "desc": "為攝影機 {{camera}} 建立觸發器" + }, + "editTrigger": { + "title": "編輯觸發器", + "desc": "編輯攝影機 {{camera}} 的觸發器設定" + }, + "deleteTrigger": { + "title": "刪除觸發器", + "desc": "你確定要刪除觸發器 {{triggerName}} 嗎?此操作不可撤銷。" + }, + "form": { + "name": { + "title": "名稱", + "placeholder": "觸發器名稱", + "description": "請輸入用於辨識此觸發器的唯一名稱或描述", + "error": { + "minLength": "該欄位至少需要兩個字元。", + "invalidCharacters": "該欄位只能包含字母、數字、下劃線和連字元。", + "alreadyExists": "此攝影機已存在同名觸發器。" + } + }, + "enabled": { + "description": "開啟/關閉此觸發器" + }, + "type": { + "title": "型別", + "placeholder": "選擇觸發型別", + "description": "當偵測到相似的追蹤目標描述時觸發", + "thumbnail": "當偵測到相似的追蹤目標縮圖時觸發" + }, + "content": { + "title": "內容", + "imagePlaceholder": "選擇圖片", + "textPlaceholder": "輸入文字內容", + "imageDesc": "僅顯示最近的 100 張縮圖。如果找不到需要的圖片,請前往“瀏覽”頁面檢視更早的目標,並從選單中設定觸發器。", + "textDesc": "輸入文字,當偵測到相似的追蹤目標描述時觸發此操作。", + "error": { + "required": "內容為必填項。" + } + }, + "threshold": { + "title": "閾值", + "desc": "設定此觸發器的相似度閾值。閾值越高,觸發所需的匹配就越精確。", + "error": { + "min": "閾值必須大於 0", + "max": "閾值必須小於 1" + } + }, + "actions": { + "title": "動作", + "desc": "預設情況下,Frigate 會為所有觸發器傳送 MQTT 訊息。子標籤會將觸發器名稱新增到目標標籤中。屬性是可搜尋的元資料,獨立儲存在追蹤目標的元資料中。", + "error": { + "min": "必須至少選擇一項動作。" + } + } + } + }, + "wizard": { + "title": "建立觸發器", + "step1": { + "description": "配置觸發器的基礎設定。" + }, + "step2": { + "description": "設定觸發此操作的內容。" + }, + "step3": { + "description": "配置此觸發器的相似度閾值與執行動作。" + }, + "steps": { + "nameAndType": "名稱與型別", + "configureData": "配置資料", + "thresholdAndActions": "閾值與動作" + } + } + }, + "button": { + "overriddenGlobal": "已覆蓋全域性通用配置", + "overriddenGlobalTooltip": "當前攝影機配置,將優先覆蓋全域性通用設定", + "overriddenGlobalHeading_other": "此攝影機覆蓋了全域性設定中的 {{count}} 個欄位:", + "overriddenGlobalNoDeltas": "此攝影機覆蓋了全域性設定,但所有欄位值都相同。", + "overriddenBaseConfig": "已覆蓋預設配置", + "overriddenBaseConfigTooltip": "當前 {{profile}} 設定檔會覆蓋本節所有設定", + "overriddenBaseConfigHeading_other": "{{profile}} 設定檔覆蓋了基礎設定中的 {{count}} 個欄位:", + "overriddenBaseConfigNoDeltas": "{{profile}} 設定檔覆蓋了此區段,但所有欄位值與基礎設定相同。", + "overriddenInCameras": { + "label_other": "已在 {{count}} 個攝影機中單獨配置", + "tooltip_other": "{{count}} 個攝影機在此項中存在單獨配置,點選檢視詳情。", + "heading_other": "此全域性設定項下有 {{count}} 個攝影機存在自訂單獨配置。", + "othersField_other": "其餘 {{count}} 個", + "profilePrefix": "{{profile}} 配置方案:{{fields}}" + } + }, + "saveAllPreview": { + "title": "未儲存的更改", + "triggerLabel": "檢視待處理的更改", + "empty": "沒有待處理的更改。", + "scope": { + "label": "作用範圍", + "global": "全域性", + "camera": "攝影機:{{cameraName}}" + }, + "profile": { + "label": "配置" + }, + "field": { + "label": "欄位" + }, + "value": { + "label": "新值", + "reset": "重設" + } + }, + "cameraManagement": { + "title": "管理攝影機", + "description": "新增、編輯和刪除攝影機,控制哪些攝影機已啟用,並設定按設定檔與攝影機類型的覆蓋。若要設定串流、偵測、動作及其他攝影機特定設定,請在「攝影機設定」下選擇對應的區段。", + "addCamera": "新增新攝影機", + "deleteCamera": "刪除攝影機", + "deleteCameraDialog": { + "title": "刪除攝影機", + "description": "刪除攝影機將永久移除該攝影機的所有錄影、跟蹤目標以及配置。任何與該攝影機關聯的 go2rtc 流可能仍需手動刪除。", + "selectPlaceholder": "選擇攝影機…", + "confirmTitle": "你確定嗎?", + "confirmWarning": "刪除 {{cameraName}} 後將無法撤銷。", + "deleteExports": "同時刪除該攝影機匯出的影片", + "confirmButton": "永久刪除", + "success": "攝影機 {{cameraName}} 刪除完成", + "error": "刪除攝影機 {{cameraName}} 失敗" + }, + "editCamera": "編輯攝影機:", + "selectCamera": "選擇攝影機", + "backToSettings": "返回攝影機設定", + "streams": { + "title": "開啟或關閉攝影機", + "enableLabel": "開啟攝影機", + "enableDesc": "暫時停用已開啟的攝影機,直到 Frigate 重啟。停用攝影機會完全停止 Frigate 對該攝影機影片流的處理。偵測、錄影和除錯功能將不可用。
注意:這不會停用 go2rtc 的轉推流。", + "disableLabel": "關閉攝影機", + "disableDesc": "開啟在當前在介面中不可見且在配置中被停用的攝影機。啟用後需要重啟 Frigate 才能生效。", + "enableSuccess": "已在配置中啟用 {{cameraName}}。請重啟 Frigate 以應用更改。", + "friendlyName": { + "edit": "修改攝影機顯示名稱", + "title": "修改顯示名稱", + "description": "設定該攝像機在 Frigate 使用者介面中顯示的名稱。若留空,則使用攝像機 ID。", + "rename": "重新命名" + } + }, + "cameraConfig": { + "add": "新增攝影機", + "edit": "編輯攝影機", + "description": "配置攝影機設定,包括影片流輸入和功能選擇。", + "name": "攝影機名稱", + "nameRequired": "攝影機名稱為必填項", + "nameLength": "攝影機名稱必須少於64個字元。", + "namePlaceholder": "例如:大門、後院等", + "enabled": "開啟", + "ffmpeg": { + "inputs": "影片流輸入", + "path": "影片流地址", + "pathRequired": "影片流地址為必填項", + "pathPlaceholder": "rtsp://...", + "roles": "功能", + "rolesRequired": "至少選擇一個功能", + "rolesUnique": "每個功能(音訊audio、偵測detect、錄製record)只能分配給一個影片流", + "addInput": "新增輸入影片流", + "removeInput": "移除輸入影片流", + "inputsRequired": "至少需要一個輸入影片流" + }, + "go2rtcStreams": "go2rtc 影片流", + "streamUrls": "影片流地址", + "addUrl": "新增地址", + "addGo2rtcStream": "新增 go2rtc 影片流", + "toast": { + "success": "攝影機 {{cameraName}} 已儲存" + } + }, + "profiles": { + "title": "設定檔的攝影機覆蓋項", + "selectLabel": "選擇設定檔", + "description": "配置在啟用某個設定檔時,哪些攝影機應被開啟或關閉。設定為“繼承”的攝影機會沿用它原本的啟用/停用狀態。", + "inherit": "繼承", + "enabled": "開啟", + "disabled": "關閉" + }, + "cameraType": { + "title": "攝影機型別", + "label": "攝影機型別", + "description": "為每路攝影機設定型別。專用車牌辨識(LPR)攝影機為單用途裝置,配備高倍光學變焦,可抓拍遠處車輛的車牌。絕大多數攝影機應選用通用型別;只有專為車牌辨識部署、且畫面聚焦對準車牌的攝影機,才需選擇專用 LPR 型別。", + "normal": "通用", + "dedicatedLpr": "車牌辨識專用", + "saveSuccess": "已更新 {{cameraName}} 的攝影機型別,請重啟 Frigate 以使更改生效。" + } + }, + "cameraReview": { + "title": "攝影機審閱設定", + "object_descriptions": { + "title": "生成式AI目標描述", + "desc": "臨時啟用或停用此攝影機的 生成式AI目標描述 功能,直到 Frigate 重啟。停用後,系統將不再請求該攝影機追蹤目標和物體的AI生成描述。" + }, + "review_descriptions": { + "title": "生成式 AI 審閱總結", + "desc": "臨時開關該攝影機的 生成式 AI 審閱總結 功能,直到 Frigate 重啟。停用後,系統將不再請求 AI 生成該攝影機審閱項目的總結。" + }, + "review": { + "title": "審閱", + "desc": "臨時開關該攝影機的警報與偵測項生成功能,直到 Frigate 重啟後恢復。停用期間,系統將不再生成新的審閱項目。 ", + "alerts": "警報 ", + "detections": "偵測 " + }, + "reviewClassification": { + "title": "審閱分類", + "desc": "Frigate 將審閱項的嚴重程度分為“警報”和“偵測”兩個等級。預設情況下,所有的汽車 目標都將視為警報。你可以透過修改設定檔配置區域來細分。", + "noDefinedZones": "此攝影機未設定任何監控區。", + "objectAlertsTips": "所有 {{alertsLabels}} 類目標或物體在 {{cameraName}} 下都將視為警報。", + "zoneObjectAlertsTips": "所有 {{alertsLabels}} 類目標或物體在 {{cameraName}} 下的 {{zone}} 區域內都將視為警報。", + "objectDetectionsTips": "所有在攝影機 {{cameraName}} 上,偵測到的 {{detectionsLabels}} 目標或物體,無論它位於哪個區,都將顯示為偵測。", + "zoneObjectDetectionsTips": { + "text": "所有在攝影機 {{cameraName}} 下的 {{zone}} 區域內偵測到未分類的 {{detectionsLabels}} 目標或物體,都將顯示為偵測。", + "notSelectDetections": "所有在攝影機 {{cameraName}}下的 {{zone}} 區域內偵測到的 {{detectionsLabels}} 目標或物體,如果它未歸類為警報,無論它位於哪個區,都將顯示為偵測。", + "regardlessOfZoneObjectDetectionsTips": "在攝影機 {{cameraName}} 上,所有未分類的 {{detectionsLabels}} 偵測目標或物體,無論出現在哪個區域,都將顯示為偵測。" + }, + "unsavedChanges": "攝影機 {{camera}} 的審閱分類設定尚未儲存", + "selectAlertsZones": "選擇警報區", + "selectDetectionsZones": "選擇偵測區", + "limitDetections": "限制僅在特定區域內進行偵測", + "toast": { + "success": "審閱分類設定已儲存,重啟後生效。" + } + } + }, + "masksAndZones": { + "filter": { + "all": "所有遮罩和區域" + }, + "restart_required": "需要重啟(遮罩與區域已修改)", + "disabledInConfig": "該項目已在設定檔中被停用", + "addDisabledProfile": "先新增到基礎配置中,然後在設定檔中進行覆蓋", + "profileBase": "(基礎)", + "profileOverride": "(覆蓋)", + "toast": { + "success": { + "copyCoordinates": "已複製 {{polyName}} 的座標到剪貼簿。" + }, + "error": { + "copyCoordinatesFailed": "無法複製座標到剪貼簿。" + } + }, + "motionMaskLabel": "畫面變動遮罩 {{number}}", + "objectMaskLabel": "目標/物體遮罩 {{number}}", + "form": { + "id": { + "error": { + "mustNotBeEmpty": "ID 不能為空。", + "alreadyExists": "此攝影機已存在使用該 ID 的遮罩。" + } + }, + "name": { + "error": { + "mustNotBeEmpty": "名稱不能為空。" + } + }, + "zoneName": { + "error": { + "mustBeAtLeastTwoCharacters": "區域名稱必須至少包含 2 個字元。", + "mustNotBeSameWithCamera": "區域名稱不能與攝影機名稱相同。", + "alreadyExists": "該攝影機已有相同的區域名稱。", + "mustNotContainPeriod": "區域名稱不能包含句點。", + "hasIllegalCharacter": "區域名稱包含非法字元。", + "mustHaveAtLeastOneLetter": "區域名稱必須至少包含一個字母。" + } + }, + "distance": { + "error": { + "text": "距離必須大於或等於 0.1。", + "mustBeFilled": "所有距離欄位必須填寫才能使用速度估算。" + } + }, + "inertia": { + "error": { + "mustBeAboveZero": "慣性必須大於 0。" + } + }, + "loiteringTime": { + "error": { + "mustBeGreaterOrEqualZero": "徘徊時間必須大於或等於 0。" + } + }, + "speed": { + "error": { + "mustBeGreaterOrEqualTo": "速度閾值必須大於或等於0.1。" + } + }, + "polygonDrawing": { + "type": { + "zone": "區域", + "motion_mask": "畫面變動遮罩", + "object_mask": "目標遮罩" + }, + "removeLastPoint": "刪除最後一個點", + "reset": { + "label": "清除所有點" + }, + "snapPoints": { + "true": "啟用點對齊", + "false": "停用點對齊" + }, + "delete": { + "title": "確認刪除", + "desc": "你確定要刪除{{type}} “{{name}}” 嗎?", + "success": "{{name}} 已被刪除。" + }, + "revertOverride": { + "title": "恢復為預設配置", + "desc": "這將移除針對 {{type}} {{name}} 的配置覆蓋,並恢復為基礎配置。" + }, + "error": { + "mustBeFinished": "多邊形繪製必須完成閉合後才能儲存。" + } + } + }, + "zones": { + "label": "區域", + "documentTitle": "編輯區域 - Frigate", + "desc": { + "title": "該功能允許你定義特定區域,以便你可以確定特定目標或物體是否在該區域內。", + "documentation": "文件" + }, + "add": "新增區域", + "edit": "編輯區域", + "point_other": "{{count}} 點", + "clickDrawPolygon": "在影像上點選新增點繪製多邊形區域。", + "name": { + "title": "區域名稱", + "inputPlaceHolder": "請輸入名稱…", + "tips": "名稱至少包含兩個字元,且不能和攝影機名或該攝影機下的其他區域同名。" + }, + "enabled": { + "title": "開啟", + "description": "指示該區域在設定檔中是否處於啟用並啟用的狀態。若被停用,則無法透過 MQTT 啟用。停用的區域在執行時會被忽略。" + }, + "inertia": { + "title": "慣性", + "desc": "辨識指定目標前該目標必須在這個區域內出現了多少幀。預設值:3" + }, + "loiteringTime": { + "title": "停留時間", + "desc": "設定目標必須在區域中至少要活動多少時間(單位為秒)。預設值:0" + }, + "objects": { + "title": "目標/物體", + "desc": "將在此區域應用的目標/物體類別清單。" + }, + "allObjects": "所有目標/物體", + "speedEstimation": { + "title": "速度估算", + "desc": "啟用此區域內物體的速度估算。該區域必須恰好包含 4 個點。", + "lineADistance": "A線距離({{unit}})", + "lineBDistance": "B線距離({{unit}})", + "lineCDistance": "C線距離({{unit}})", + "lineDDistance": "D線距離({{unit}})" + }, + "speedThreshold": { + "title": "速度閾值 ({{unit}})", + "desc": "指定物體在此區域內被視為有效的最低速度。", + "toast": { + "error": { + "pointLengthError": "此區域的速度估算已停用。啟用速度估算的區域必須恰好包含 4 個點。", + "loiteringTimeError": "徘徊時間大於 0 的區域不應與速度估算一起使用。" + } + } + }, + "toast": { + "success": "區域 ({{zoneName}}) 已儲存。" + } + }, + "motionMasks": { + "label": "畫面變動遮罩", + "documentTitle": "編輯畫面變動遮罩 - Frigate", + "desc": { + "title": "畫面變動遮罩用於防止觸發不必要的畫面變動偵測。過度的設定遮罩將使目標更加難以被追蹤。", + "documentation": "文件" + }, + "add": "新增畫面變動遮罩", + "edit": "編輯畫面變動遮罩", + "defaultName": "畫面變動遮罩 {{number}}", + "context": { + "title": "畫面變動遮罩用於防止不需要的畫面變動觸發偵測(例如:容易被風吹動的樹枝、攝影機畫面上顯示的時間等)。畫面變動遮罩應謹慎使用,過度的遮罩會導致追蹤目標變得更加困難。" + }, + "point_other": "{{count}} 點", + "clickDrawPolygon": "在影像上點選新增點繪製多邊形區域。", + "name": { + "title": "名稱", + "description": "為該畫面變動遮罩設定別名(可選)。", + "placeholder": "輸入名稱…" + }, + "polygonAreaTooLarge": { + "title": "畫面變動遮罩的大小達到了攝影機畫面的{{polygonArea}}%。不建議設定太大的畫面變動遮罩。", + "tips": "畫面變動遮罩並不會使該區域無法偵測到指定目標/物體,如有需要,你應該使用 區域 來限制偵測的目標/物體型別。" + }, + "toast": { + "success": { + "title": "{{polygonName}} 已儲存。", + "noName": "畫面變動遮罩已儲存。" + } + } + }, + "objectMasks": { + "label": "目標遮罩", + "documentTitle": "編輯目標遮罩 - Frigate", + "desc": { + "title": "目標過濾器用於防止特定位置出現對某個目標/物體的誤報。", + "documentation": "文件" + }, + "add": "新增目標遮罩", + "edit": "編輯目標遮罩", + "context": "目標過濾器用於防止特定位置的指定目標會誤報。", + "point_other": "{{count}} 點", + "clickDrawPolygon": "在影像上點選新增點繪製多邊形區域。", + "name": { + "title": "名稱", + "description": "為該目標遮罩設定別名(可選)。", + "placeholder": "輸入名稱…" + }, + "objects": { + "title": "目標/物體", + "desc": "將應用於此目標遮罩的目標或物體型別。", + "allObjectTypes": "所有目標或物體型別" + }, + "toast": { + "success": { + "title": "{{polygonName}} 已儲存。", + "noName": "目標遮罩已儲存。" + } + } + }, + "masks": { + "enabled": { + "title": "開啟", + "description": "指示該遮罩在設定檔中是否處於啟用並啟用的狀態。若被停用,則無法透過 MQTT 啟用。停用的遮罩在執行時會被忽略。" + } + } + }, + "motionDetectionTuner": { + "title": "畫面變動偵測調整", + "unsavedChanges": "{{camera}} 的畫面變動調整設定未儲存", + "desc": { + "title": "Frigate 將首先使用畫面變動偵測來確認每一幀畫面中是否有變動的區域,然後再對該區域使用目標偵測。", + "documentation": "閱讀有關畫面變動偵測的文件" + }, + "Threshold": { + "title": "閾值", + "desc": "閾值決定像素亮度變化達到多少時會被認為是畫面變動。預設值:30" + }, + "contourArea": { + "title": "輪廓面積", + "desc": "輪廓面積值用於判斷產生了多大的變化區域可被認定為畫面變動。預設值:10" + }, + "improveContrast": { + "title": "提高對比度", + "desc": "提高較暗場景的對比度。預設值:啟用" + }, + "toast": { + "success": "畫面變動設定已儲存。" + } + }, + "debug": { + "title": "除錯", + "detectorDesc": "Frigate 將使用偵測器({{detectors}})來偵測攝影機影片流中的目標或物體。", + "desc": "除錯介面將即時顯示被追蹤的目標以及統計資訊,目標清單將顯示偵測到的目標和延遲顯示的概覽。", + "openCameraWebUI": "開啟 {{camera}} 的管理頁面", + "debugging": "除錯選項", + "objectList": "目標清單", + "noObjects": "沒有目標", + "audio": { + "title": "音訊", + "noAudioDetections": "未偵測到音訊事件", + "score": "分值", + "currentRMS": "當前均方根值(RMS)", + "currentdbFS": "當前滿量程相對分貝值(dbFS)" + }, + "boundingBoxes": { + "title": "邊界框", + "desc": "將在被追蹤的目標周圍顯示邊界框", + "colors": { + "label": "目標邊界框顏色定義", + "info": "
  • 啟用後,將會為每個目標的標籤分配不同的顏色
  • 深藍色細線代表該目標或物體在當前時間點未被偵測到
  • 灰色細線代表偵測到的目標或物體靜止不動
  • 粗線表示在啟動自動追蹤時,該目標為自動追蹤的主體
  • " + } + }, + "timestamp": { + "title": "時間戳", + "desc": "在影像上顯示時間戳" + }, + "zones": { + "title": "區域", + "desc": "顯示已定義的區域圖層" + }, + "mask": { + "title": "畫面變動遮罩", + "desc": "顯示畫面變動遮罩圖層" + }, + "motion": { + "title": "畫面變動區域框", + "desc": "在偵測到畫面變動的區域顯示區域框", + "tips": "

    畫面變動區域框


    將在當前偵測到畫面變動的區域內顯示紅色區域框。

    " + }, + "regions": { + "title": "範圍", + "desc": "顯示傳送給目標偵測器感興趣的區域框", + "tips": "

    範圍框


    將在幀中傳送到目標偵測器的感興趣範圍上疊加綠色框。

    " + }, + "paths": { + "title": "行動軌跡", + "desc": "顯示被追蹤目標的行動軌跡關鍵點", + "tips": "

    行動軌跡

    將使用線條來標示被追蹤目標在其活動週期內移動的關鍵位置點。

    " + }, + "objectShapeFilterDrawing": { + "title": "允許繪製“目標形狀過濾器”", + "desc": "在影像上繪製矩形,以檢視區域和比例詳細資訊", + "tips": "啟用此選項,能夠在攝影機畫面上繪製矩形,將顯示其區域和比例。你可以透過使用這些值在配置中設定目標形狀過濾器的引數。", + "score": "分數", + "ratio": "比例", + "area": "區域" + } + }, + "timestampPosition": { + "tl": "左上角", + "tr": "右上角", + "bl": "左下角", + "br": "右下角" + }, + "users": { + "title": "使用者", + "management": { + "title": "使用者管理", + "desc": "管理此 Frigate 例項的使用者帳戶。" + }, + "addUser": "新增使用者", + "updatePassword": "修改密碼", + "toast": { + "success": { + "createUser": "使用者 {{user}} 建立成功", + "deleteUser": "使用者 {{user}} 刪除成功", + "updatePassword": "已成功修改密碼。", + "roleUpdated": "已更新 {{user}} 的權限組" + }, + "error": { + "setPasswordFailed": "儲存密碼出現錯誤:{{errorMessage}}", + "createUserFailed": "建立使用者失敗:{{errorMessage}}", + "deleteUserFailed": "刪除使用者失敗:{{errorMessage}}", + "roleUpdateFailed": "更新權限組失敗:{{errorMessage}}" + } + }, + "table": { + "username": "使用者名稱", + "actions": "操作", + "role": "權限組", + "noUsers": "未找到使用者。", + "changeRole": "更改使用者權限組", + "password": "修改密碼", + "deleteUser": "刪除使用者" + }, + "dialog": { + "form": { + "user": { + "title": "使用者名稱", + "desc": "僅允許使用字母、數字、句點和下劃線。", + "placeholder": "請輸入使用者名稱" + }, + "password": { + "title": "密碼", + "placeholder": "請輸入密碼", + "show": "顯示密碼", + "hide": "隱藏密碼", + "confirm": { + "title": "確認密碼", + "placeholder": "請再次輸入密碼" + }, + "strength": { + "title": "密碼強度: ", + "weak": "弱", + "medium": "中等", + "strong": "強", + "veryStrong": "非常強" + }, + "requirements": { + "title": "密碼要求:", + "length": "至少需要 12 位字元" + }, + "match": "密碼匹配", + "notMatch": "密碼不匹配" + }, + "newPassword": { + "title": "新密碼", + "placeholder": "請輸入新密碼", + "confirm": { + "placeholder": "請再次輸入新密碼" + } + }, + "currentPassword": { + "title": "當前密碼", + "placeholder": "請輸入當前密碼" + }, + "usernameIsRequired": "使用者名稱為必填項", + "passwordIsRequired": "必須輸入密碼" + }, + "createUser": { + "title": "建立新使用者", + "desc": "建立一個新使用者帳戶,並指定一個權限組以控制存取 Frigate 頁面的權限。", + "usernameOnlyInclude": "使用者名稱只能包含字母、數字和 _", + "confirmPassword": "請確認你的密碼" + }, + "deleteUser": { + "title": "刪除該使用者", + "desc": "此操作無法撤銷。這將永久刪除使用者帳戶並移除所有相關資料。", + "warn": "你確定要刪除 {{username}} 嗎?" + }, + "passwordSetting": { + "cannotBeEmpty": "密碼不能為空", + "doNotMatch": "兩次輸入密碼不匹配", + "currentPasswordRequired": "當前密碼為必填", + "incorrectCurrentPassword": "當前密碼錯誤", + "passwordVerificationFailed": "驗證密碼失敗", + "updatePassword": "更新 {{username}} 的密碼", + "setPassword": "設定密碼", + "desc": "建立一個強密碼來保護此帳戶。", + "multiDeviceWarning": "其他已登入的裝置將需要在 {{refresh_time}} 內重新登入。", + "multiDeviceAdmin": "你也可以透過輪換你的 JWT 金鑰,強制所有使用者立即重新登入驗證。" + }, + "changeRole": { + "title": "更改使用者權限組", + "select": "選擇權限組", + "desc": "更新 {{username}} 的權限", + "roleInfo": { + "intro": "為該使用者選擇一個合適的權限組:", + "admin": "管理員", + "adminDesc": "完全功能與存取權限。", + "viewer": "成員", + "viewerDesc": "僅能夠檢視即時監控面板、審閱、瀏覽和匯出功能。", + "customDesc": "自訂特定攝影機的存取規則。" + } + } + } + }, + "roles": { + "management": { + "title": "成員權限組管理", + "desc": "管理此 Frigate 例項的自訂權限組及其攝影機存取權限。" + }, + "addRole": "新增權限組", + "table": { + "role": "權限組", + "cameras": "攝影機", + "actions": "操作", + "noRoles": "沒有找到自訂權限組。", + "editCameras": "編輯攝影機", + "deleteRole": "刪除權限組" + }, + "toast": { + "success": { + "createRole": "權限組 {{role}} 建立成功", + "updateCameras": "已更新攝影機至 {{role}} 權限組", + "deleteRole": "已刪除 {{role}} 權限組", + "userRolesUpdated_other": "已將分配到此權限組的 {{count}} 位使用者更新為 “成員”,該權限組可存取所有攝影機。" + }, + "error": { + "createRoleFailed": "建立權限組失敗:{{errorMessage}}", + "updateCamerasFailed": "更新攝影機失敗:{{errorMessage}}", + "deleteRoleFailed": "刪除權限組失敗:{{errorMessage}}", + "userUpdateFailed": "更新使用者權限組失敗:{{errorMessage}}" + } + }, + "dialog": { + "createRole": { + "title": "建立新權限組", + "desc": "新增新權限組並分配攝影機存取權限。" + }, + "editCameras": { + "title": "編輯權限組的攝影機", + "desc": "為權限組 {{role}} 更新攝影機存取權限。" + }, + "deleteRole": { + "title": "刪除權限組", + "desc": "此操作無法撤銷。這將永久刪除該權限組,並將所有擁有此權限組的使用者分配到 “成員” (view)權限組,該權限組將賦予使用者檢視所有攝影機的權限。", + "warn": "你確定要刪除權限組 {{role}} 嗎?", + "deleting": "刪除中…" + }, + "form": { + "role": { + "title": "權限組名稱", + "placeholder": "輸入權限組名稱", + "desc": "僅允許使用字母、數字、句點和下劃線。", + "roleIsRequired": "必須輸入權限組名稱", + "roleOnlyInclude": "權限組名稱僅支援字母、數字、英文句號和下劃線", + "roleExists": "該權限組名稱已存在。" + }, + "cameras": { + "title": "攝影機", + "desc": "請選擇該權限組能夠存取的攝影機。至少需要選擇一個攝影機。", + "required": "至少要選擇一個攝影機。" + } + } + } + }, + "notification": { + "title": "通知", + "notificationSettings": { + "title": "通知設定", + "desc": "Frigate 在瀏覽器中執行或作為 PWA 安裝時,可以原生向您的裝置傳送推送通知。" + }, + "notificationUnavailable": { + "title": "通知功能不可用", + "desc": "網頁推送通知需要安全連線(https://…)。這是瀏覽器的限制。請透過安全方式存取 Frigate 以使用通知功能。" + }, + "globalSettings": { + "title": "全域性設定", + "desc": "臨時暫停所有已註冊裝置上特定攝影機的通知。" + }, + "email": { + "title": "電子郵箱", + "placeholder": "例如:example@email.com", + "desc": "需要輸入有效的電子郵件,在推送服務出現問題時,將使用此電子郵件進行通知。" + }, + "cameras": { + "title": "攝影機", + "noCameras": "沒有可用的攝影機", + "desc": "選擇要啟用通知的攝影機。" + }, + "deviceSpecific": "裝置專用設定", + "registerDevice": "註冊該裝置", + "unregisterDevice": "取消註冊該裝置", + "sendTestNotification": "傳送測試通知", + "unsavedRegistrations": "未儲存通知註冊", + "unsavedChanges": "未儲存通知設定更改", + "active": "通知已啟用", + "suspended": "通知已暫停 {{time}}", + "suspendTime": { + "suspend": "暫停", + "5minutes": "暫停 5 分鐘", + "10minutes": "暫停 10 分鐘", + "30minutes": "暫停 30 分鐘", + "1hour": "暫停 1 小時", + "12hours": "暫停 12 小時", + "24hours": "暫停 24 小時", + "untilRestart": "暫停直到重啟" + }, + "cancelSuspension": "取消暫停", + "toast": { + "success": { + "registered": "已成功註冊通知。需要重啟 Frigate 才能傳送任何通知(包括測試通知)。", + "settingSaved": "通知設定已儲存。" + }, + "error": { + "registerFailed": "通知註冊失敗。" + } + } + }, + "frigatePlus": { + "title": "Frigate+ 設定", + "description": "Frigate+ 是一項訂閱服務,可為你的 Frigate 例項提供額外的功能和能力,包括使用基於你自己的資料訓練的自訂目標偵測模型。你可以在此管理 Frigate+ 的模型設定。", + "cardTitles": { + "api": "API", + "currentModel": "當前模型", + "otherModels": "其他模型", + "configuration": "配置" + }, + "apiKey": { + "title": "Frigate+ API 金鑰", + "validated": "Frigate+ API 金鑰已偵測並驗證透過", + "notValidated": "未偵測到 Frigate+ API 金鑰或驗證未透過", + "desc": "Frigate+ API 金鑰用於啟用與 Frigate+ 服務的整合。", + "plusLink": "瞭解更多關於 Frigate+" + }, + "snapshotConfig": { + "title": "快照配置", + "desc": "提交到 Frigate+ 需要同時在配置中開啟快照功能。", + "cleanCopyWarning": "部分攝影機未開啟快照功能", + "table": { + "camera": "攝影機", + "snapshots": "快照" + } + }, + "modelInfo": { + "title": "模型資訊", + "modelType": "模型型別", + "trainDate": "訓練日期", + "baseModel": "基礎模型", + "plusModelType": { + "baseModel": "基礎模型", + "userModel": "定向調優" + }, + "supportedDetectors": "支援的偵測器", + "cameras": "攝影機", + "loading": "正在載入模型資訊…", + "error": "載入模型資訊失敗", + "noModelLoaded": "目前未載入 Frigate+ 模型。", + "availableModels": "可用模型", + "loadingAvailableModels": "正在載入可用模型…", + "selectModel": "選擇模型", + "noModelsAvailable": "無可用模型", + "filter": { + "ariaLabel": "依類型篩選模型", + "baseModels": "基礎模型", + "fineTunedModels": "微調模型" + }, + "modelSelect": "您可以在Frigate+上選擇可用的模型。請注意,只能選擇與當前偵測器配置相容的模型。" + }, + "changeInDetectorsAndModel": "變更模型", + "unsavedChanges": "未儲存Frigate+變更設定", + "restart_required": "需要重啟(Frigate+模型已修改)", + "toast": { + "success": "Frigate+ 設定已儲存。請重啟 Frigate 以應用更改。", + "error": "配置更改儲存失敗:{{errorMessage}}" + } + }, + "detectorsAndModel": { + "title": "偵測器與模型", + "description": "設定執行物件偵測的偵測器後端及其使用的模型。變更會一起儲存以確保偵測器與模型保持同步。", + "cardTitles": { + "detector": "偵測器硬體", + "model": "偵測模型" + }, + "tabs": { + "plus": "Frigate+", + "custom": "自訂模型" + }, + "mismatch": { + "warning": "目前的 Frigate+ 模型「{{model}}」需要 {{required}} 偵測器。請在下方選擇相容的模型,或在儲存前切換到「自訂模型」。" + }, + "plusModel": { + "requiresDetector": "需要:{{detector}}", + "noModelSelected": "選擇 Frigate+ 模型" + }, + "toast": { + "saveSuccess": "偵測器與模型設定已儲存。請重新啟動 Frigate 以套用變更。", + "saveError": "儲存偵測器與模型設定失敗" + }, + "unsavedChanges": "偵測器與模型有未儲存的變更", + "restartRequired": "需要重新啟動(偵測器或模型已變更)" + }, + "maintenance": { + "title": "維護", + "sync": { + "title": "媒體同步", + "desc": "Frigate 會根據您的保留配置定期清理媒體檔案。出現少量孤立檔案是正常現象。使用此功能可以刪除磁碟上不再被資料庫引用的孤立媒體檔案。", + "started": "媒體同步已啟動。", + "alreadyRunning": "同步任務已在執行中", + "error": "啟動同步失敗", + "currentStatus": "狀態", + "jobId": "任務 ID", + "startTime": "開始時間", + "endTime": "結束時間", + "statusLabel": "狀態", + "results": "結果", + "errorLabel": "錯誤", + "mediaTypes": "媒體型別", + "allMedia": "所有媒體", + "dryRun": "試執行", + "dryRunEnabled": "不會刪除任何檔案", + "dryRunDisabled": "將刪除檔案", + "force": "強制執行", + "forceDesc": "繞過安全閾值,即使刪除超過 50% 的檔案也完成同步。", + "verbose": "詳細模式", + "verboseDesc": "將所有孤立檔案的完整清單寫入硬碟以供審閱。", + "running": "同步執行中…", + "start": "開始同步", + "inProgress": "同步正在進行中。此頁面已停用。", + "status": { + "queued": "已排隊", + "running": "執行中", + "completed": "已完成", + "failed": "失敗", + "notRunning": "未執行" + }, + "resultsFields": { + "filesChecked": "已檢查檔案", + "orphansFound": "發現孤立檔案", + "orphansDeleted": "已刪除孤立檔案", + "aborted": "已中止。刪除操作將超過安全閾值。", + "error": "錯誤", + "totals": "總計" + }, + "event_snapshots": "追蹤目標快照", + "event_thumbnails": "追蹤目標縮圖", + "review_thumbnails": "審閱縮圖", + "previews": "預覽", + "exports": "匯出", + "recordings": "錄影" + }, + "regionGrid": { + "title": "區域網格", + "desc": "區域網格是一種最佳化功能,它會學習不同大小的目標通常出現在每個攝影機視野中的位置。Frigate 利用這些資料來高效地確定偵測區域的大小。該網格會根據追蹤目標資料自動構建。", + "clear": "清除區域網格", + "clearConfirmTitle": "清除區域網格", + "clearConfirmDesc": "除非你最近更改了偵測器模型大小或攝影機的物理位置,並且遇到了目標追蹤問題,否則不建議清除區域網格。網格會隨著目標的追蹤自動重建。更改需要重啟 Frigate 才能生效。", + "clearSuccess": "區域網格清除成功", + "clearError": "清除區域網格失敗", + "restartRequired": "需要重啟以使區域網格更改生效" + } + }, + "configForm": { + "global": { + "title": "全域性設定", + "description": "這些設定適用於所有攝影機,除非在攝影機特定設定中被覆蓋。" + }, + "camera": { + "title": "攝影機設定", + "description": "這些設定僅適用於此攝影機,並會覆蓋全域性設定。", + "noCameras": "沒有可用的攝影機" + }, + "advancedSettingsCount": "高階設定 ({{count}})", + "advancedCount": "高階選項 ({{count}})", + "showAdvanced": "顯示高階設定", + "tabs": { + "sharedDefaults": "共享預設值", + "system": "系統", + "integrations": "整合" + }, + "additionalProperties": { + "keyLabel": "鍵", + "valueLabel": "值", + "keyPlaceholder": "新鍵名", + "remove": "移除" + }, + "knownPlates": { + "namePlaceholder": "例如:老婆的車", + "platePlaceholder": "車牌號或正則表示式" + }, + "timezone": { + "defaultOption": "使用瀏覽器時區" + }, + "roleMap": { + "empty": "未配置權限組對映", + "roleLabel": "角色", + "groupsLabel": "使用者組", + "addMapping": "新增角色對映", + "remove": "移除" + }, + "ffmpegArgs": { + "preset": "預設", + "manual": "手動引數", + "inherit": "繼承攝影機設定", + "none": "無", + "useGlobalSetting": "繼承全域性設定", + "selectPreset": "選擇預設", + "manualPlaceholder": "輸入 FFmpeg 引數", + "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}}" + }, + "restartRequiredField": "需要重啟", + "restartRequiredFooter": "配置已更改 - 需要重啟", + "sections": { + "detect": "偵測", + "record": "錄製", + "snapshots": "快照", + "motion": "畫面變動", + "objects": "目標", + "review": "審閱", + "audio": "音訊", + "notifications": "通知", + "live": "即時檢視", + "timestamp_style": "時間戳", + "mqtt": "MQTT", + "database": "資料庫", + "telemetry": "遙測", + "auth": "身份驗證", + "tls": "TLS", + "proxy": "代理", + "go2rtc": "go2rtc", + "ffmpeg": "FFmpeg 編解碼", + "detectors": "偵測器", + "model": "模型", + "semantic_search": "語意搜尋", + "genai": "生成式 AI", + "face_recognition": "人臉辨識", + "lpr": "車牌辨識", + "birdseye": "鳥瞰圖", + "masksAndZones": "遮罩 / 區域" + }, + "detect": { + "title": "偵測設定" + }, + "detectors": { + "title": "偵測器設定", + "singleType": "只允許一個 {{type}} 偵測器。", + "keyRequired": "偵測器名稱為必填項。", + "keyDuplicate": "偵測器名稱已存在。", + "noSchema": "沒有可用的偵測器架構。", + "none": "未配置偵測器例項。", + "add": "新增偵測器", + "addCustomKey": "新增自訂鍵(Key)" + }, + "record": { + "title": "錄製設定" + }, + "snapshots": { + "title": "快照設定" + }, + "motion": { + "title": "畫面變動設定" + }, + "objects": { + "title": "目標設定" + }, + "audioLabels": { + "summary": "已選擇 {{count}} 個音訊標籤", + "empty": "無可用音訊標籤" + }, + "objectLabels": { + "summary": "已選擇 {{count}} 個目標型別", + "empty": "無可用目標標籤" + }, + "reviewLabels": { + "summary": "已選擇 {{count}} 個標籤", + "empty": "暫無可用標籤" + }, + "filters": { + "objectFieldLabel": "{{label}} 的 {{field}}" + }, + "zoneNames": { + "summary": "已選擇 {{count}} 個", + "empty": "沒有可用的區域" + }, + "inputRoles": { + "summary": "已選擇 {{count}} 個功能", + "empty": "無可用功能", + "options": { + "detect": "偵測", + "record": "錄製", + "audio": "音訊" + } + }, + "genaiRoles": { + "options": { + "embeddings": "嵌入(Embedding)", + "descriptions": "描述", + "chat": "對話" + } + }, + "semanticSearchModel": { + "placeholder": "選擇模型…", + "builtIn": "內建模型", + "genaiProviders": "生成式 AI 服務" + }, + "review": { + "title": "審閱設定" + }, + "audio": { + "title": "音訊設定" + }, + "notifications": { + "title": "通知設定" + }, + "live": { + "title": "即時檢視設定" + }, + "timestamp_style": { + "title": "時間戳設定" + }, + "searchPlaceholder": "搜尋…", + "addCustomLabel": "新增自訂標籤…", + "genaiModel": { + "placeholder": "選擇模型…", + "search": "搜尋模型…", + "noModels": "暫無模型" + } + }, + "globalConfig": { + "title": "全域性配置", + "description": "配置適用於所有攝影機的全域性設定,除非被單獨覆蓋。", + "toast": { + "success": "全域性設定儲存成功", + "error": "儲存全域性設定失敗", + "validationError": "驗證失敗" + } + }, + "cameraConfig": { + "title": "攝影機配置", + "description": "配置單個攝影機的設定。這些設定會覆蓋全域性預設值。", + "overriddenBadge": "已覆蓋", + "resetToGlobal": "重設為全域性設定", + "toast": { + "success": "攝影機設定儲存成功", + "error": "儲存攝影機設定失敗" + } + }, + "toast": { + "success": "設定儲存成功", + "applied": "設定應用成功", + "successRestartRequired": "設定儲存成功。請重啟 Frigate 以應用更改。", + "error": "儲存設定失敗", + "validationError": "驗證失敗:{{message}}", + "resetSuccess": "已重設為全域性預設值", + "resetError": "重設設定失敗", + "saveAllSuccess_other": "所有 {{count}} 個部分儲存成功。", + "saveAllPartial_other": "已儲存 {{successCount}} / {{totalCount}} 個部分。{{failCount}} 個失敗。", + "saveAllFailure": "儲存所有部分失敗。" + }, + "profiles": { + "title": "設定檔", + "activeProfile": "啟用設定檔", + "noActiveProfile": "無啟用的設定檔", + "active": "啟用", + "activated": "設定檔 {{profile}} 已啟用", + "activateFailed": "設定檔設定失敗", + "deactivated": "設定檔已停用", + "noProfiles": "未定義任何設定檔。", + "noOverrides": "無覆蓋項", + "cameraCount_other": "{{count}} 個攝影機", + "columnCamera": "攝影機", + "columnOverrides": "設定檔覆蓋", + "baseConfig": "基礎配置", + "addProfile": "新增設定檔", + "newProfile": "新設定檔", + "profileNamePlaceholder": "例如:佈防、外出、夜間模式", + "friendlyNameLabel": "設定檔名稱", + "profileIdLabel": "設定檔 ID", + "profileIdDescription": "用於配置和自動化的內部辨識符號", + "nameInvalid": "僅允許使用小寫字母、數字和下劃線", + "nameDuplicate": "已存在同名設定檔", + "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": "設定檔功能可以讓你建立一組帶名稱的攝影機自訂引數(比如佈防、離家、夜間模式),並隨時切換啟用。" + }, + "unsavedChanges": "您有未儲存的更改", + "confirmReset": "確認重設", + "resetToDefaultDescription": "這將把此部分的所有設定重設為預設值。此操作無法撤銷。", + "resetToGlobalDescription": "這將把此部分的設定重設為全域性預設值。此操作無法撤銷。", + "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": "自動選擇硬體加速" + } + }, + "birdseye": { + "trackingMode": { + "objects": "目標", + "motion": "動作", + "continuous": "持續" + } + }, + "retainMode": { + "all": "全部", + "motion": "動作", + "active_objects": "活動目標" + }, + "previewQuality": { + "very_high": "極高", + "high": "高", + "medium": "中", + "low": "低", + "very_low": "極低" + }, + "ui": { + "timeFormat": { + "browser": "瀏覽器", + "12hour": "12 小時", + "24hour": "24 小時" + }, + "TimeOrDateStyle": { + "full": "完整", + "long": "長", + "medium": "中", + "short": "短" + }, + "unitSystem": { + "metric": "公制", + "imperial": "英制" + } + }, + "review": { + "imageSource": { + "recordings": "錄影", + "previews": "預覽" + } + }, + "logger": { + "logLevel": { + "debug": "Debug", + "info": "Info", + "warning": "Warning", + "error": "Error", + "critical": "Critical" + } + }, + "onvif": { + "profileAuto": "自動", + "profileLoading": "正在載入設定檔…", + "autotracking": { + "zooming": { + "disabled": "停用", + "absolute": "絕對", + "relative": "相對" + } + } + }, + "modelSize": { + "small": "小", + "large": "大" + }, + "configMessages": { + "review": { + "recordDisabled": "錄製已停用,不會生成審閱記錄項。", + "detectDisabled": "目標偵測已停用。審閱記錄需要依靠偵測到的目標來對警報和偵測事件進行分類。", + "allNonAlertDetections": "所有非警報類活動都將被記錄為偵測事件。", + "genaiImageSourceRecordingsRecordDisabled": "影像源雖然設定為“錄製”,但錄製功能已關閉。Frigate 將自動降級使用預覽圖片。" + }, + "audio": { + "noAudioRole": "暫無任何流已開啟音訊(audio)功能(role)。必須在影片流上啟用音訊功能,音訊偵測才能正常工作。" + }, + "audioTranscription": { + "audioDetectionDisabled": "該攝影機未開啟音訊偵測功能。音訊轉錄需要先開啟音訊偵測。" + }, + "detect": { + "fpsGreaterThanFive": "不建議設定偵測幀率高於 5,數值設定過高可能引發效能問題,且不會帶來任何增益。", + "disabled": "目標偵測已停用。快照、回放條目以及人臉辨識、車牌辨識、生成式 AI 等增強功能都將無法使用。" + }, + "objects": { + "genaiNoDescriptionsProvider": "必須配置具備“描述”功能的生成式 AI 服務商,才能自動生成事件描述。" + }, + "faceRecognition": { + "globalDisabled": "必須開啟人臉辨識增強功能,此攝影機的人臉辨識相關功能才能正常使用。", + "personNotTracked": "人臉辨識需要偵測到 “人”(person) 後才能工作。請在該攝影機的偵測目標設定中新增“人”。", + "modelSizeLarge": "大型模型需要 GPU 或 NPU 才能執行正常。僅使用 CPU 的裝置請選用小型模型。" + }, + "lpr": { + "globalDisabled": "要讓該攝影機的車牌辨識功能正常使用,必須先開啟車牌辨識增強功能。", + "vehicleNotTracked": "車牌辨識需要先開啟對 “汽車” 或 “摩托車” 的目標追蹤。請在該攝影機的偵測目標中新增“汽車”或“摩托車”。", + "modelSizeLarge": "大型模型針對多行格式車牌做了最佳化。小型模型的效能優於大型模型,而且只有小型模型才能支援中文車牌。除非你所在地區使用多行車牌格式,否則建議使用小型模型。" + }, + "record": { + "noRecordRole": "暫無任何影片流已配置錄製功能,錄製功能將無法正常工作。" + }, + "birdseye": { + "objectsModeDetectDisabled": "鳥瞰圖已設定為 “目標” 模式,但此攝影機未開啟目標偵測。該攝影機將不會顯示在鳥瞰畫面中。" + }, + "snapshots": { + "detectDisabled": "目標偵測已停用。快照是根據追蹤到的目標生成的,因此將不會建立快照。" + }, + "detectors": { + "mixedTypes": "所有偵測器必須為同一型別。若要更換為其他型別,請先移除現有的偵測器。", + "mixedTypesSuggestion": "所有偵測器必須使用相同型別。請移除現有偵測器,或選擇 {{type}}。" + }, + "semanticSearch": { + "jinav2SmallModelSize": "Jina V2 的大型模型版本記憶體佔用與推理開銷較高,建議搭配獨立顯示卡使用大型模型。" } } } diff --git a/web/public/locales/zh-Hant/views/system.json b/web/public/locales/zh-Hant/views/system.json index e956b9a42e..23aa19f880 100644 --- a/web/public/locales/zh-Hant/views/system.json +++ b/web/public/locales/zh-Hant/views/system.json @@ -7,7 +7,8 @@ "logs": { "frigate": "Frigate 日誌 - Frigate", "go2rtc": "Go2RTC 日誌 - Frigate", - "nginx": "Nginx 日誌 - Frigate" + "nginx": "Nginx 日誌 - Frigate", + "websocket": "訊息日誌 - Frigate" } }, "title": "系統", @@ -33,6 +34,33 @@ "fetchingLogsFailed": "擷取日誌時出錯:{{errorMessage}}", "whileStreamingLogs": "串流日誌時出錯:{{errorMessage}}" } + }, + "websocket": { + "label": "訊息", + "pause": "暫停", + "resume": "繼續", + "clear": "清除", + "filter": { + "all": "全部主題", + "topics": "主題", + "events": "事件", + "reviews": "審閱", + "classification": "分類", + "face_recognition": "人臉辨識", + "lpr": "車牌辨識", + "camera_activity": "攝影機活動", + "system": "系統", + "camera": "攝影機", + "all_cameras": "所有攝影機", + "cameras_count_one": "{{count}} 個攝影機", + "cameras_count_other": "{{count}} 個攝影機" + }, + "empty": "未捕獲到訊息", + "count_one": "{{count}} 則訊息", + "count_other": "{{count}} 則訊息", + "expanded": { + "payload": "Payload" + } } }, "general": { @@ -81,7 +109,10 @@ "title": "Intel GPU 狀態警告", "message": "GPU 狀態資訊不可用", "description": "這是一個在Intel GPU 狀態回報工具 (intel_gpu_top) 中已知的 Bug,該工具會故障並重複的回報 GPU占用率為 0%,甚至在硬體加速與物件偵測在 (i)GPU上正確運作時也是如此。這不是 Frigate 的 Bug。您可以透過重新啟動主機來暫時修復此問題以確認 GPU 運作正常。這不會影響效能。" - } + }, + "gpuCompute": "GPU 計算 / 編碼", + "gpuTemperature": "GPU 溫度", + "npuTemperature": "NPU 溫度" }, "otherProcesses": { "title": "其他行程", @@ -118,7 +149,11 @@ }, "shm": { "title": "SHM(共享記憶體)配置", - "warning": "目前的 SHM 大小為 {{total}}MB,過小。請將其增加至至少 {{min_shm}}MB。" + "warning": "目前的 SHM 大小為 {{total}}MB,過小。請將其增加至至少 {{min_shm}}MB。", + "frameLifetime": { + "title": "幀保留時間", + "description": "每個攝影機在共享記憶體中擁有 {{frames}} 個幀槽位。在最快攝影機的幀率下,每一幀在被覆蓋前大約可保留 {{lifetime}} 秒。" + } } }, "cameras": { @@ -156,7 +191,8 @@ "cameraDetect": "{{camName}} 偵測", "cameraFramesPerSecond": "{{camName}} 幀率", "cameraDetectionsPerSecond": "{{camName}} 每秒偵測幀率", - "cameraSkippedDetectionsPerSecond": "{{camName}} 每秒跳過偵測幀率" + "cameraSkippedDetectionsPerSecond": "{{camName}} 每秒跳過偵測幀率", + "cameraGpu": "{{camName}} GPU" }, "toast": { "success": { @@ -165,6 +201,20 @@ "error": { "unableToProbeCamera": "無法檢測鏡頭:{{errorMessage}}" } + }, + "noCameras": { + "title": "沒有找到攝影機" + }, + "connectionQuality": { + "title": "連線品質", + "excellent": "優秀", + "fair": "一般", + "poor": "較差", + "unusable": "不可用", + "fps": "幀率", + "expectedFps": "預期幀率", + "reconnectsLastHour": "最近一小時重連次數", + "stallsLastHour": "最近一小時卡頓次數" } }, "lastRefreshed": "最後更新: ", @@ -176,7 +226,8 @@ "cameraIsOffline": "{{camera}} 已離線", "detectIsSlow": "{{detect}} 偵測速度較慢({{speed}} 毫秒)", "detectIsVerySlow": "{{detect}} 偵測速度緩慢({{speed}} 毫秒)", - "shmTooLow": "/dev/shm 配置({{total}} MB)應增加至至少{{min}} MB。" + "shmTooLow": "/dev/shm 配置({{total}} MB)應增加至至少{{min}} MB。", + "debugReplayActive": "除錯回放工作階段正在進行" }, "enrichments": { "title": "進階功能",