From 7d02220ec5b1e3b2d026fdaa507acea2dda14a72 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Tue, 13 Jan 2026 21:00:57 +0100 Subject: [PATCH] Translated using Weblate (Persian) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (53 of 53 strings) Translated using Weblate (Persian) Currently translated at 100.0% (49 of 49 strings) Translated using Weblate (Persian) Currently translated at 100.0% (122 of 122 strings) Translated using Weblate (Persian) Currently translated at 100.0% (131 of 131 strings) Translated using Weblate (Persian) Currently translated at 100.0% (6 of 6 strings) Translated using Weblate (Persian) Currently translated at 100.0% (214 of 214 strings) Translated using Weblate (Persian) Currently translated at 100.0% (46 of 46 strings) Translated using Weblate (Persian) Currently translated at 100.0% (654 of 654 strings) Translated using Weblate (Persian) Currently translated at 100.0% (92 of 92 strings) Translated using Weblate (Persian) Currently translated at 100.0% (136 of 136 strings) Translated using Weblate (Persian) Currently translated at 100.0% (55 of 55 strings) Translated using Weblate (Persian) Currently translated at 100.0% (43 of 43 strings) Translated using Weblate (Persian) Currently translated at 100.0% (13 of 13 strings) Translated using Weblate (Persian) Currently translated at 100.0% (501 of 501 strings) Translated using Weblate (Persian) Currently translated at 100.0% (118 of 118 strings) Translated using Weblate (Persian) Currently translated at 100.0% (10 of 10 strings) Translated using Weblate (Persian) Currently translated at 100.0% (131 of 131 strings) Translated using Weblate (Persian) Currently translated at 100.0% (55 of 55 strings) Translated using Weblate (Persian) Currently translated at 100.0% (41 of 41 strings) Translated using Weblate (Persian) Currently translated at 100.0% (53 of 53 strings) Translated using Weblate (Persian) Currently translated at 99.6% (652 of 654 strings) Translated using Weblate (Persian) Currently translated at 98.9% (91 of 92 strings) Translated using Weblate (Persian) Currently translated at 100.0% (122 of 122 strings) Translated using Weblate (Persian) Currently translated at 84.6% (11 of 13 strings) Translated using Weblate (Persian) Currently translated at 100.0% (74 of 74 strings) Translated using Weblate (Persian) Currently translated at 100.0% (118 of 118 strings) Translated using Weblate (Persian) Currently translated at 100.0% (135 of 135 strings) Translated using Weblate (Persian) Currently translated at 95.6% (44 of 46 strings) Translated using Weblate (Persian) Currently translated at 66.6% (4 of 6 strings) Translated using Weblate (Persian) Currently translated at 100.0% (10 of 10 strings) Translated using Weblate (Persian) Currently translated at 92.0% (23 of 25 strings) Translated using Weblate (Persian) Currently translated at 100.0% (501 of 501 strings) Translated using Weblate (Persian) Currently translated at 100.0% (2 of 2 strings) Translated using Weblate (Persian) Currently translated at 100.0% (214 of 214 strings) Translated using Weblate (Persian) Currently translated at 97.9% (48 of 49 strings) Co-authored-by: Hosted Weblate Co-authored-by: حمید ملک محمدی Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/fa/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/fa/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/fa/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/fa/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/fa/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/fa/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-icons/fa/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/fa/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/fa/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/fa/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/fa/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/fa/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/fa/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/fa/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/fa/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/fa/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-recording/fa/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/fa/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/fa/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/fa/ Translation: Frigate NVR/audio Translation: Frigate NVR/common Translation: Frigate NVR/components-auth Translation: Frigate NVR/components-camera Translation: Frigate NVR/components-dialog Translation: Frigate NVR/components-filter Translation: Frigate NVR/components-icons Translation: Frigate NVR/components-player Translation: Frigate NVR/objects Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-configeditor Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-exports Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-live Translation: Frigate NVR/views-recording Translation: Frigate NVR/views-search Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/fa/audio.json | 478 +++++++- web/public/locales/fa/common.json | 290 ++++- web/public/locales/fa/components/auth.json | 10 +- web/public/locales/fa/components/camera.json | 78 +- web/public/locales/fa/components/dialog.json | 113 +- web/public/locales/fa/components/filter.json | 132 +- web/public/locales/fa/components/icons.json | 2 +- web/public/locales/fa/components/player.json | 47 +- web/public/locales/fa/objects.json | 102 +- .../locales/fa/views/classificationModel.json | 166 ++- web/public/locales/fa/views/configEditor.json | 13 +- web/public/locales/fa/views/events.json | 59 +- web/public/locales/fa/views/explore.json | 242 +++- web/public/locales/fa/views/exports.json | 21 +- web/public/locales/fa/views/faceLibrary.json | 81 +- web/public/locales/fa/views/live.json | 179 ++- web/public/locales/fa/views/recording.json | 12 +- web/public/locales/fa/views/search.json | 70 +- web/public/locales/fa/views/settings.json | 1061 ++++++++++++++++- web/public/locales/fa/views/system.json | 194 ++- 20 files changed, 3315 insertions(+), 35 deletions(-) diff --git a/web/public/locales/fa/audio.json b/web/public/locales/fa/audio.json index 965460f7f..b3e547006 100644 --- a/web/public/locales/fa/audio.json +++ b/web/public/locales/fa/audio.json @@ -23,5 +23,481 @@ "bus": "اتوبوس", "motorcycle": "موتور سیکلت", "train": "قطار", - "bicycle": "دوچرخه" + "bicycle": "دوچرخه", + "child_singing": "آواز خواندن کودک", + "snort": "خرناس", + "cough": "سرفه", + "throat_clearing": "صاف کردن گلو", + "sneeze": "عطسه", + "sniff": "بو کشیدن", + "run": "دویدن", + "synthetic_singing": "آواز مصنوعی", + "rapping": "رپ‌خوانی", + "humming": "هوم‌خوانی", + "sheep": "گوسفند", + "groan": "ناله", + "grunt": "غرغر", + "whistling": "سوت زدن", + "breathing": "تنفس", + "wheeze": "خِس‌خِس", + "snoring": "خروپف", + "gasp": "به نفس‌نفس افتادن", + "pant": "نفس‌نفس‌زدن", + "shuffle": "پخش تصادفی", + "footsteps": "صدای قدم‌ها", + "chewing": "جویدن", + "biting": "گاز گرفتن", + "camera": "دوربین", + "gargling": "غرغره کردنغرغره کردن", + "stomach_rumble": "قاروقور شکم", + "burping": "آروغ زدن", + "skateboard": "اسکیت‌بورد", + "yip": "ییپ", + "howl": "زوزه", + "growling": "درحال غرغر", + "meow": "میو", + "caterwaul": "جیغ‌وداد", + "livestock": "دام", + "clip_clop": "تق‌تق", + "cattle": "گوساله", + "cowbell": "زنگولهٔ گاو", + "mouse": "موش", + "oink": "خِرخِر", + "keyboard": "صفحه‌کلید", + "goat": "بز", + "sink": "سینک", + "cluck": "قُدقُد", + "turkey": "بوقلمون", + "quack": "قاقا", + "scissors": "قیچی", + "honk": "بوق", + "hair_dryer": "سشوار", + "roar": "غرش", + "vehicle": "وسیلهٔ نقلیه", + "chirp": "جیک‌جیک", + "squawk": "جیغ زدن", + "coo": "قوقو", + "crow": "کلاغ", + "owl": "جغد", + "dogs": "سگ‌ها", + "patter": "شرشر", + "mosquito": "پشه", + "buzz": "وزوز", + "frog": "قورباغه", + "snake": "مار", + "rattle": "جغجغه کردن", + "music": "موسیقی", + "musical_instrument": "ساز موسیقی", + "guitar": "گیتار", + "electric_guitar": "گیتار برقی", + "acoustic_guitar": "گیتار آکوستیک", + "steel_guitar": "گیتار استیل", + "banjo": "بانجو", + "sitar": "سیتار", + "hiccup": "سکسکه", + "fart": "باد معده", + "finger_snapping": "بشکن زدن", + "clapping": "دست زدن", + "heartbeat": "ضربان قلب", + "heart_murmur": "سوفل قلبی", + "applause": "تشویق", + "chatter": "وراجی", + "crowd": "جمعیت", + "children_playing": "بازی کردن کودکان", + "animal": "حیوان", + "pets": "حیوانات خانگی", + "bark": "پارس", + "bow_wow": "هاپ‌هاپ", + "whimper_dog": "نالیدن سگ", + "purr": "خرخر", + "hiss": "هیس", + "neigh": "شیهه", + "door": "در", + "moo": "ماغ", + "pig": "خوک", + "bleat": "بع‌بع", + "fowl": "ماکیان", + "cock_a_doodle_doo": "قدقدی‌قدقد", + "blender": "مخلوط‌کن", + "chicken": "مرغ", + "gobble": "قورت دادن", + "clock": "ساعت", + "duck": "اردک", + "goose": "غاز", + "wild_animals": "حیوانات وحشی", + "toothbrush": "مسواک", + "roaring_cats": "غرش گربه‌ها", + "pigeon": "کبوتر", + "hoot": "هوهو", + "flapping_wings": "بال‌بال زدن", + "rats": "موش‌ها", + "insect": "حشره", + "cricket": "جیرجیرک", + "fly": "مگس", + "croak": "قارقار", + "whale_vocalization": "آواز نهنگ", + "plucked_string_instrument": "ساز زهی زخمه‌ای", + "bass_guitar": "گیتار باس", + "tapping": "ضربه‌زدن", + "strum": "زخمه‌زدن", + "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": "موسیقی فولک", + "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": "موسیقی تم", + "soundtrack_music": "موسیقی متن", + "lullaby": "لالایی", + "video_game_music": "موسیقی بازی‌های ویدیویی", + "christmas_music": "موسیقی کریسمس", + "dance_music": "موسیقی رقص", + "wedding_music": "موسیقی عروسی", + "happy_music": "موسیقی شاد", + "sad_music": "موسیقی غمگین", + "tender_music": "موسیقی لطیف", + "angry_music": "موسیقی خشمگین", + "exciting_music": "موسیقی هیجان‌انگیز", + "scary_music": "موسیقی ترسناک", + "wind": "باد", + "rustling_leaves": "خش‌خش برگ‌ها", + "wind_noise": "صدای باد", + "thunderstorm": "طوفان تندری", + "thunder": "رعد", + "water": "آب", + "rain": "باران", + "raindrop": "قطرهٔ باران", + "rain_on_surface": "باران روی سطح", + "waterfall": "آبشار", + "ocean": "اقیانوس", + "waves": "امواج", + "steam": "بخار", + "gurgling": "قل‌قل", + "motorboat": "قایق موتوری", + "ship": "کشتی", + "motor_vehicle": "وسیلهٔ نقلیهٔ موتوری", + "toot": "توت", + "car_alarm": "دزدگیر خودرو", + "truck": "کامیون", + "air_brake": "ترمز بادی", + "air_horn": "بوق بادی", + "reversing_beeps": "بوق دنده‌عقب", + "ice_cream_truck": "کامیون بستنی‌فروشی", + "traffic_noise": "صدای ترافیک", + "rail_transport": "حمل‌ونقل ریلی", + "train_whistle": "سوت قطار", + "train_horn": "بوق قطار", + "jet_engine": "موتور جت", + "propeller": "ملخ", + "helicopter": "بالگرد", + "fixed-wing_aircraft": "هواپیمای بال‌ثابت", + "medium_engine": "موتور متوسط", + "heavy_engine": "موتور سنگین", + "engine_knocking": "تق‌تق موتور", + "engine_starting": "روشن شدن موتور", + "idling": "درجا کار کردن", + "slam": "محکم کوبیدن", + "knock": "در زدن", + "tap": "ضربهٔ آرام", + "squeak": "جیرجیر", + "cupboard_open_or_close": "باز یا بسته شدن کمد", + "microwave_oven": "مایکروفر", + "water_tap": "شیر آب", + "bathtub": "وان حمام", + "toilet_flush": "سیفون توالت", + "keys_jangling": "جرینگ‌جرینگ کلیدها", + "coin": "سکه", + "electric_shaver": "ریش‌تراش برقی", + "shuffling_cards": "بر زدنِ کارت‌ها", + "telephone_bell_ringing": "زنگ خوردن تلفن", + "ringtone": "زنگ تماس", + "telephone_dialing": "شماره‌گیری تلفن", + "dial_tone": "بوق آزاد", + "busy_signal": "بوق اشغال", + "alarm_clock": "ساعت زنگ‌دار", + "fire_alarm": "هشدار آتش‌سوزی", + "foghorn": "بوق مه", + "whistle": "سوت", + "steam_whistle": "سوت بخار", + "mechanisms": "سازوکارها", + "pulleys": "قرقره‌ها", + "sewing_machine": "چرخ خیاطی", + "mechanical_fan": "پنکهٔ مکانیکی", + "air_conditioning": "تهویهٔ مطبوع", + "cash_register": "صندوق فروش", + "jackhammer": "چکش بادی", + "sawing": "اره‌کردن", + "drill": "دریل", + "sanding": "سنباده‌کاری", + "power_tool": "ابزار برقی", + "filing": "سوهان‌کاری", + "artillery_fire": "آتش توپخانه", + "cap_gun": "تفنگ ترقه‌ای", + "fireworks": "آتش‌بازی", + "firecracker": "ترقه", + "burst": "ترکیدن", + "crack": "ترک", + "glass": "شیشه", + "chink": "جرینگ", + "shatter": "خُرد شدن", + "silence": "سکوت", + "television": "تلویزیون", + "radio": "رادیو", + "field_recording": "ضبط میدانی", + "scream": "جیغ", + "chird": "جیرجیر", + "change_ringing": "زنگ خوردن پول خرد", + "shofar": "شوفار", + "liquid": "مایع", + "splash": "پاشیدن", + "gush": "فوران", + "fill": "پر کردن", + "spray": "اسپری", + "pump": "پمپ", + "stir": "هم زدن", + "thunk": "صدای افتادن", + "electronic_tuner": "تیونر الکترونیکی", + "effects_unit": "واحد افکت‌ها", + "chorus_effect": "افکت کُر", + "basketball_bounce": "پرش توپ بسکتبال", + "bouncing": "پرش", + "whip": "شلاق", + "flap": "بال‌بال زدن", + "scratch": "خراشیدن", + "scrape": "ساییدن", + "beep": "بیپ", + "ping": "پینگ", + "ding": "دینگ", + "clang": "تق", + "squeal": "جیغ", + "clicking": "کلیک‌کردن", + "clickety_clack": "تَق‌تَق", + "rumble": "غرّش", + "plop": "پَت", + "chirp_tone": "صدای جیک", + "pulse": "پالس", + "inside": "داخل", + "outside": "بیرون", + "reverberation": "پژواک", + "cacophony": "همهمه", + "throbbing": "تپش", + "vibration": "لرزش", + "hands": "دست‌ها", + "cheering": "تشویق کردن", + "caw": "قارقار", + "jingle": "جینگل", + "middle_eastern_music": "موسیقی خاورمیانه‌ای", + "stream": "جریان", + "fire": "آتش", + "crackle": "ترق‌تروق", + "sailboat": "قایق بادبانی", + "rowboat": "قایق پارویی", + "power_windows": "شیشه‌بالابر برقی", + "skidding": "سرخوردن", + "tire_squeal": "جیغ لاستیک", + "car_passing_by": "عبور خودرو", + "race_car": "خودروی مسابقه", + "emergency_vehicle": "خودروی امدادی", + "police_car": "خودروی پلیس", + "vacuum_cleaner": "جاروبرقی", + "zipper": "زیپ", + "typing": "تایپ کردن", + "typewriter": "ماشین تحریر", + "computer_keyboard": "صفحه‌کلید رایانه", + "writing": "نوشتن", + "alarm": "هشدار", + "telephone": "تلفن", + "siren": "آژیر", + "civil_defense_siren": "آژیر دفاع مدنی", + "buzzer": "بیزر", + "smoke_detector": "آشکارساز دود", + "ratchet": "جغجغه", + "tick-tock": "تیک‌تاک", + "gears": "چرخ‌دنده‌ها", + "printer": "چاپگر", + "single-lens_reflex_camera": "دوربین تک‌لنزی بازتابی", + "tools": "ابزارها", + "hammer": "چکش", + "explosion": "انفجار", + "gunshot": "شلیک", + "machine_gun": "مسلسل", + "fusillade": "رگبار", + "eruption": "فوران", + "boom": "بوم", + "wood": "چوب", + "sound_effect": "جلوهٔ صوتی", + "splinter": "تراشه", + "environmental_noise": "نویز محیطی", + "static": "ساکن", + "white_noise": "نویز سفید", + "squish": "فشردن", + "drip": "چکه", + "pour": "ریختن", + "trickle": "چکیدن", + "boiling": "جوشیدن", + "thump": "کوبیدن", + "bang": "بنگ", + "slap": "سیلی", + "whack": "ضربه", + "smash": "خرد کردن", + "roll": "غلتیدن", + "crushing": "خرد کردن", + "crumpling": "چروک شدن", + "tearing": "پاره کردن", + "creak": "جیرجیر", + "clatter": "قارقار", + "sizzle": "جوشیدن", + "hum": "زمزمه", + "zing": "زنگ", + "boing": "بویینگ", + "crunch": "خرد کردن", + "noise": "نویز", + "mains_hum": "زمزمهٔ برق", + "distortion": "اعوجاج", + "sidetone": "صدای گوشی", + "ambulance": "آمبولانس", + "fire_engine": "خودروی آتش‌نشانی", + "railroad_car": "واگن راه‌آهن", + "train_wheels_squealing": "جیرجیر چرخ‌های قطار", + "subway": "مترو", + "aircraft": "هوانورد", + "aircraft_engine": "موتور هواپیما", + "engine": "موتور", + "light_engine": "موتور سبک", + "dental_drill's_drill": "متهٔ دندانپزشکی", + "lawn_mower": "چمن‌زن", + "chainsaw": "ارهٔ زنجیری", + "accelerating": "شتاب‌گیری", + "doorbell": "زنگ در", + "ding-dong": "دینگ‌دونگ", + "sliding_door": "در کشویی", + "drawer_open_or_close": "باز یا بسته شدن کشو", + "dishes": "ظروف", + "cutlery": "قاشق و چنگال", + "chopping": "خرد کردن", + "frying": "سرخ کردن", + "electric_toothbrush": "مسواک برقی", + "tick": "تیک", + "chop": "خرد کردن", + "pink_noise": "نویز صورتی", + "sodeling": "سودلینگ", + "slosh": "پاشیدن", + "sonar": "سونار", + "arrow": "پیکان", + "whoosh": "ووش", + "breaking": "شکستن", + "rub": "مالیدن", + "rustle": "خش‌خش", + "whir": "وزوز", + "sine_wave": "موج سینوسی", + "harmonic": "هارمونیک", + "echo": "پژواک" } diff --git a/web/public/locales/fa/common.json b/web/public/locales/fa/common.json index 2bb9555cb..3b9e02617 100644 --- a/web/public/locales/fa/common.json +++ b/web/public/locales/fa/common.json @@ -4,6 +4,294 @@ "untilForRestart": "تا زمانی که فریگیت دوباره شروع به کار کند.", "untilRestart": "تا زمان ری‌استارت", "ago": "{{timeAgo}} قبل", - "justNow": "هم اکنون" + "justNow": "هم اکنون", + "today": "امروز", + "yesterday": "دیروز", + "last7": "۷ روز گذشته", + "last14": "۱۴ روز گذشته", + "last30": "۳۰ روز گذشته", + "thisWeek": "این هفته", + "lastWeek": "هفتهٔ گذشته", + "thisMonth": "این ماه", + "lastMonth": "ماه گذشته", + "5minutes": "۵ دقیقه", + "10minutes": "۱۰ دقیقه", + "day_one": "{{time}} روز", + "day_other": "{{time}} روز", + "h": "{{time}}س", + "hour_one": "{{time}} ساعت", + "hour_other": "{{time}} ساعت", + "m": "{{time}} دقیقه", + "minute_one": "{{time}} دقیقه", + "minute_other": "{{time}} دقیقه", + "s": "{{time}}ث", + "30minutes": "۳۰ دقیقه", + "1hour": "۱ ساعت", + "12hours": "۱۲ ساعت", + "24hours": "۲۴ ساعت", + "pm": "ب.ظ.", + "am": "ق.ظ.", + "yr": "{{time}} سال", + "year_one": "{{time}} سال", + "year_other": "{{time}} سال", + "mo": "{{time}} ماه", + "month_one": "{{time}} ماه", + "month_other": "{{time}} ماه", + "d": "{{time}} روز", + "second_one": "{{time}} ثانیه", + "second_other": "‏{{time}} ثانیه", + "formattedTimestamp": { + "12hour": "MMM d، h:mm:ss aaa", + "24hour": "MMM d، HH:mm:ss" + }, + "formattedTimestamp2": { + "12hour": "MM/dd h:mm:ssa", + "24hour": "d MMM HH:mm:ssd MMM، HH:mm:ss" + }, + "formattedTimestampHourMinute": { + "12hour": "h:mm aaa", + "24hour": "HH:mm" + }, + "formattedTimestampHourMinuteSecond": { + "12hour": "h:mm:ss aaa", + "24hour": "HH:mm:ss" + }, + "formattedTimestampMonthDayHourMinute": { + "12hour": "d MMM, h:mm aaa", + "24hour": "d MMM, HH:mm" + }, + "formattedTimestampMonthDayYear": { + "12hour": "d MMM, yyyy", + "24hour": "d MMM, yyyy" + }, + "formattedTimestampMonthDayYearHourMinute": { + "12hour": "d MMM yyyy, h:mm aaa", + "24hour": "yyyy MMM d, HH:mm" + }, + "formattedTimestampMonthDay": "d MMM", + "formattedTimestampFilename": { + "12hour": "MM-dd-yy-h-mm-ss-a", + "24hour": "MM-dd-yy-HH-mm-ss" + }, + "inProgress": "در حال انجام", + "invalidStartTime": "زمان شروع نامعتبر است", + "invalidEndTime": "زمان پایان نامعتبر است" + }, + "unit": { + "length": { + "feet": "فوت", + "meters": "متر" + }, + "data": { + "kbps": "kB/s", + "gbps": "GB/s", + "mbph": "مگابایت/ساعت", + "gbph": "گیگابایت/ساعت", + "mbps": "مگابایت/ثانیه", + "kbph": "کیلوبایت/ساعت" + }, + "speed": { + "mph": "مایل/ساعت", + "kph": "کیلومتر/ساعت" + } + }, + "label": { + "hide": "پنهان کردن {{item}}", + "ID": "شناسه", + "all": "همه", + "back": "برگشت به قبل", + "show": "نمایش {{item}}", + "none": "هیچ‌کدام" + }, + "list": { + "many": "{{items}}، و {{last}}", + "two": "{{0}} و {{1}}", + "separatorWithSpace": ", · " + }, + "field": { + "internalID": "شناسهٔ داخلی‌ای که Frigate در پیکربندی و پایگاه‌داده استفاده می‌کند", + "optional": "اختیاری" + }, + "button": { + "apply": "اعمال", + "done": "انجام شد", + "enable": "فعال کردن", + "disabled": "غیرفعال", + "cancel": "لغو", + "close": "بستن", + "back": "بازگشت", + "fullscreen": "تمام‌صفحه", + "exitFullscreen": "خروج از حالت تمام‌صفحه", + "twoWayTalk": "مکالمهٔ دوطرفه", + "cameraAudio": "صدای دوربین", + "off": "خاموش", + "delete": "حذف", + "download": "دانلود", + "unsuspended": "برداشتن تعلیق", + "unselect": "لغو انتخاب", + "export": "خروجی گرفتن", + "next": "بعدی", + "reset": "بازنشانی", + "enabled": "فعال", + "disable": "غیرفعال کردن", + "save": "ذخیره", + "saving": "در حال ذخیره…", + "copy": "کپی", + "history": "تاریخچه", + "pictureInPicture": "تصویر در تصویر", + "copyCoordinates": "کپی مختصات", + "yes": "بله", + "no": "خیر", + "info": "اطلاعات", + "play": "پخش", + "deleteNow": "حذف فوری", + "continue": "ادامه", + "on": "روشن", + "edit": "ویرایش", + "suspended": "تعلیق‌شده" + }, + "menu": { + "systemMetrics": "شاخص‌های سیستم", + "configuration": "پیکربندی", + "settings": "تنظیمات", + "language": { + "en": "انگلیسی (English)", + "hi": "هندی (Hindi)", + "fr": "فرانسوی (French)", + "ptBR": "پرتغالیِ برزیل (Brazilian Portuguese)", + "ru": "روسی (Russian)", + "es": "اسپانیایی (زبان اسپانیایی)", + "zhCN": "چینی ساده‌شده (چینی ساده)", + "ar": "عربی (زبان عربی)", + "pt": "پرتغالی (زبان پرتغالی)", + "de": "آلمانی (زبان آلمانی)", + "ja": "ژاپنی (زبان ژاپنی)", + "tr": "ترکی (زبان ترکی)", + "it": "ایتالیایی (زبان ایتالیایی)", + "nl": "هلندی (زبان هلندی)", + "sv": "سوئدی (زبان سوئدی)", + "cs": "چکی (زبان چکی)", + "nb": "بوکمل نروژیایی (بوکمل نروژی)", + "ko": "کره‌ای (زبان کره‌ای)", + "vi": "ویتنامی (زبان ویتنامی)", + "fa": "فارسی (زبان فارسی)", + "pl": "لهستانی (زبان لهستانی)", + "uk": "اوکراینی (زبان اوکراینی)", + "he": "عبری (زبان عبری)", + "el": "یونانی (زبان یونانی)", + "ro": "رومانیایی (زبان رومانیایی)", + "hu": "مجاری (زبان مجاری)", + "fi": "فنلاندی (زبان فنلاندی)", + "da": "دانمارکی (زبان دانمارکی)", + "sk": "اسلواکی (زبان اسلواکی)", + "yue": "کانتونی (زبان کانتونی)", + "th": "تایلندی (زبان تایلندی)", + "ca": "کاتالانی (زبان کاتالانی)", + "sr": "صربی (زبان صربی)", + "sl": "اسلوونیایی (زبان اسلوونیایی)", + "lt": "لیتوانیایی (زبان لیتوانیایی)", + "bg": "بلغاری (زبان بلغاری)", + "gl": "گالیسیایی (زبان گالیسیایی)", + "id": "اندونزیایی (زبان اندونزیایی)", + "ur": "اردو (زبان اردو)", + "withSystem": { + "label": "برای زبان از تنظیمات سامانه استفاده کنید" + } + }, + "system": "سامانه", + "systemLogs": "لاگ‌های سامانه", + "configurationEditor": "ویرایشگر پیکربندی", + "languages": "زبان‌ها", + "appearance": "ظاهر", + "darkMode": { + "label": "حالت تاریک", + "light": "روشنایی", + "dark": "تاریک", + "withSystem": { + "label": "برای حالت روشن یا تاریک از تنظیمات سامانه استفاده کنید" + } + }, + "withSystem": "سامانه", + "theme": { + "label": "پوسته", + "blue": "آبی", + "green": "سبز", + "nord": "نورد", + "red": "قرمز", + "highcontrast": "کنتراست بالا", + "default": "پیش‌فرض" + }, + "help": "راهنما", + "documentation": { + "title": "مستندات", + "label": "مستندات Frigate" + }, + "restart": "راه‌اندازی مجدد Frigate", + "live": { + "title": "زنده", + "allCameras": "همهٔ دوربین‌ها", + "cameras": { + "title": "دوربین‌ها", + "count_one": "{{count}} دوربین", + "count_other": "{{count}} دوربین" + } + }, + "review": "بازبینی", + "explore": "کاوش", + "export": "خروجی گرفتن", + "uiPlayground": "محیط آزمایشی UI", + "faceLibrary": "کتابخانهٔ چهره", + "classification": "طبقه‌بندی", + "user": { + "title": "کاربر", + "account": "حساب کاربری", + "current": "کاربر فعلی: {{user}}", + "anonymous": "ناشناس", + "logout": "خروج", + "setPassword": "تنظیم گذرواژه" + } + }, + "toast": { + "copyUrlToClipboard": "نشانی اینترنتی در کلیپ‌بورد کپی شد.", + "save": { + "title": "ذخیره", + "error": { + "title": "ذخیرهٔ تغییرات پیکربندی ناموفق بود: {{errorMessage}}", + "noMessage": "ذخیرهٔ تغییرات پیکربندی ناموفق بود" + } + } + }, + "role": { + "title": "نقش", + "admin": "مدیر", + "viewer": "بیننده", + "desc": "مدیران به همهٔ ویژگی‌ها در رابط کاربری Frigate دسترسی کامل دارند. بیننده‌ها فقط می‌توانند دوربین‌ها، موارد بازبینی و ویدیوهای تاریخی را در رابط کاربری مشاهده کنند." + }, + "pagination": { + "label": "صفحه‌بندی", + "previous": { + "title": "قبلی", + "label": "رفتن به صفحهٔ قبلی" + }, + "next": { + "title": "بعدی", + "label": "رفتن به صفحهٔ بعدی" + }, + "more": "صفحه‌های بیشتر" + }, + "accessDenied": { + "documentTitle": "دسترسی ممنوع - Frigate", + "title": "دسترسی ممنوع", + "desc": "شما اجازهٔ مشاهدهٔ این صفحه را ندارید." + }, + "notFound": { + "documentTitle": "یافت نشد - Frigate", + "title": "۴۰۴", + "desc": "صفحه پیدا نشد" + }, + "selectItem": "انتخاب {{item}}", + "readTheDocumentation": "مستندات را بخوانید", + "information": { + "pixels": "{{area}}px" } } diff --git a/web/public/locales/fa/components/auth.json b/web/public/locales/fa/components/auth.json index 6b87e7257..3c4e021b2 100644 --- a/web/public/locales/fa/components/auth.json +++ b/web/public/locales/fa/components/auth.json @@ -3,6 +3,14 @@ "user": "نام کاربری", "password": "رمز عبور", "login": "ورود", - "firstTimeLogin": "اولین باز است وارد می شود؟ اطلاعات هویتی در ثبت رخداد های فریگیت چاپ خواهد شد." + "firstTimeLogin": "اولین باز است وارد می شود؟ اطلاعات هویتی در ثبت رخداد های فریگیت چاپ خواهد شد.", + "errors": { + "usernameRequired": "وارد کردن نام کاربری الزامی است", + "passwordRequired": "وارد کردن رمز عبور الزامی است", + "loginFailed": "ورود ناموفق بود", + "unknownError": "خطای ناشناخته. گزارش‌ها را بررسی کنید.", + "webUnknownError": "خطای ناشناخته. گزارش‌های کنسول را بررسی کنید.", + "rateLimit": "از حد مجاز درخواست‌ها فراتر رفت. بعداً دوباره تلاش کنید." + } } } diff --git a/web/public/locales/fa/components/camera.json b/web/public/locales/fa/components/camera.json index ee4d1d172..35f7ec517 100644 --- a/web/public/locales/fa/components/camera.json +++ b/web/public/locales/fa/components/camera.json @@ -4,7 +4,83 @@ "add": "افزودن گروه دوربین", "edit": "ویرایش گروه دوربین", "delete": { - "label": "حذف گروه دوربین ها" + "label": "حذف گروه دوربین ها", + "confirm": { + "title": "تأیید حذف", + "desc": "آیا مطمئن هستید که می‌خواهید گروه دوربین «{{name}}» را حذف کنید؟" + } + }, + "name": { + "label": "نام", + "placeholder": "یک نام وارد کنید…", + "errorMessage": { + "mustLeastCharacters": "نام گروه دوربین باید حداقل ۲ کاراکتر باشد.", + "exists": "نام گروه دوربین از قبل وجود دارد.", + "nameMustNotPeriod": "نام گروه دوربین نباید شامل نقطه باشد.", + "invalid": "نام گروه دوربین نامعتبر است." + } + }, + "cameras": { + "desc": "دوربین‌های این گروه را انتخاب کنید.", + "label": "دوربین‌ها" + }, + "icon": "آیکون", + "success": "گروه دوربین ({{name}}) ذخیره شد.", + "camera": { + "setting": { + "streamMethod": { + "method": { + "noStreaming": { + "label": "بدون پخش", + "desc": "تصاویر دوربین فقط هر یک دقیقه یک‌بار به‌روزرسانی می‌شوند و هیچ پخش زنده‌ای انجام نخواهد شد." + }, + "smartStreaming": { + "label": "پخش هوشمند (پیشنهادی)", + "desc": "پخش هوشمند زمانی که فعالیت قابل تشخیصی وجود ندارد برای صرفه‌جویی در پهنای باند و منابع، تصویر دوربین شما را هر یک دقیقه یک‌بار به‌روزرسانی می‌کند. وقتی فعالیت تشخیص داده شود، تصویر به‌طور یکپارچه به پخش زنده تغییر می‌کند." + }, + "continuousStreaming": { + "label": "پخش پیوسته", + "desc": { + "title": "تصویر دوربین وقتی در داشبورد قابل مشاهده باشد همیشه پخش زنده خواهد بود، حتی اگر هیچ فعالیتی تشخیص داده نشود.", + "warning": "پخش پیوسته ممکن است باعث مصرف بالای پهنای‌باند و مشکلات عملکردی شود. با احتیاط استفاده کنید." + } + } + }, + "label": "روش پخش", + "placeholder": "یک روش پخش را انتخاب کنید" + }, + "label": "تنظیمات پخش دوربین", + "title": "تنظیمات پخش {{cameraName}}", + "audioIsAvailable": "صدا برای این پخش در دسترس است", + "audioIsUnavailable": "صدا برای این پخش در دسترس نیست", + "audio": { + "tips": { + "title": "برای این پخش، صدا باید از دوربین شما خروجی گرفته شود و در go2rtc پیکربندی شده باشد." + } + }, + "stream": "جریان", + "placeholder": "یک جریان را برگزینید", + "compatibilityMode": { + "label": "حالت سازگاری", + "desc": "این گزینه را فقط زمانی فعال کنید که پخش زندهٔ دوربین شما دچار آثار رنگی (artifact) است و در سمت راست تصویر یک خط مورب دیده می‌شود." + }, + "desc": "گزینه‌های پخش زنده را برای داشبورد این گروه دوربین تغییر دهید. این تنظیمات مخصوص دستگاه/مرورگر هستند. " + }, + "birdseye": "نمای پرنده" } + }, + "debug": { + "options": { + "label": "تنظیمات", + "title": "گزینه‌ها", + "showOptions": "نمایش گزینه‌ها", + "hideOptions": "پنهان کردن گزینه‌ها" + }, + "boundingBox": "کادر محدوده", + "timestamp": "مهر زمانی", + "zones": "ناحیه‌ها", + "mask": "ماسک", + "motion": "حرکت", + "regions": "مناطق" } } diff --git a/web/public/locales/fa/components/dialog.json b/web/public/locales/fa/components/dialog.json index 121a73224..99095fc9d 100644 --- a/web/public/locales/fa/components/dialog.json +++ b/web/public/locales/fa/components/dialog.json @@ -1,11 +1,122 @@ { "restart": { - "title": "آیا از ری‌استارت فریگیت اطمینان دارید؟", + "title": "آیا برای راه اندازی مجدد Frigate مطمئن هستید؟", "button": "ری‌استارت", "restarting": { "title": "فریگیت در حال ری‌استارت شدن", "content": "صفحه تا {{countdown}} ثانیه دیگر مجددا بارگزاری خواهد شد.", "button": "بارگزاری مجدد هم اکنون اجرا شود" } + }, + "explore": { + "plus": { + "submitToPlus": { + "label": "ارسال به Frigate+", + "desc": "اشیایی که در مکان‌هایی هستند که می‌خواهید از آن‌ها اجتناب کنید، «مثبت کاذب» محسوب نمی‌شوند. ارسال آن‌ها به‌عنوان مثبت کاذب باعث می‌شود مدل دچار سردرگمی شود." + }, + "review": { + "question": { + "label": "این برچسب را برای Frigate Plus تأیید کنید", + "ask_a": "آیا این شیء {{label}} است؟", + "ask_an": "آیا این شیء یک {{label}} است؟", + "ask_full": "آیا این شیء یک {{untranslatedLabel}} ({{translatedLabel}}) است؟" + }, + "state": { + "submitted": "ارسال شد" + } + } + }, + "video": { + "viewInHistory": "مشاهده در تاریخچه" + } + }, + "export": { + "time": { + "fromTimeline": "انتخاب از خط زمانی", + "lastHour_one": "ساعت گذشته", + "lastHour_other": "آخرین {{count}} ساعت", + "custom": "سفارشی", + "start": { + "title": "زمان شروع", + "label": "زمان شروع را انتخاب کنید" + }, + "end": { + "title": "زمان پایان", + "label": "زمان پایان را انتخاب کنید" + } + }, + "toast": { + "error": { + "endTimeMustAfterStartTime": "زمان پایان باید بعد از زمان شروع باشد", + "noVaildTimeSelected": "بازهٔ زمانی معتبر انتخاب نشده است", + "failed": "شروع خروجی‌گیری ناموفق بود: {{error}}" + }, + "success": "ساخت خروجی با موفقیت آغاز شد. فایل را در صفحه خروجی‌ها مشاهده کنید.", + "view": "مشاهده" + }, + "fromTimeline": { + "saveExport": "ذخیرهٔ خروجی", + "previewExport": "پیش‌نمایش خروجی" + }, + "name": { + "placeholder": "برای خروجی نام بگذارید" + }, + "select": "انتخاب", + "export": "خروجی", + "selectOrExport": "انتخاب یا خروجی" + }, + "streaming": { + "label": "جریان", + "restreaming": { + "disabled": "بازپخش برای این دوربین فعال نیست.", + "desc": { + "title": "برای گزینه‌های بیشتر نمایش زنده و صدا برای این دوربین، go2rtc را تنظیم کنید." + } + }, + "showStats": { + "label": "نمایش آمار جریان", + "desc": "این گزینه را فعال کنید تا آمار جریان به‌صورت پوششی روی تصویر دوربین نمایش داده شود." + }, + "debugView": "نمای اشکال‌زدایی" + }, + "search": { + "saveSearch": { + "label": "ذخیره جست‌وجو", + "desc": "برای این جست‌وجوی ذخیره‌شده یک نام وارد کنید.", + "placeholder": "برای جستجوی خود یک نام وارد کنید", + "success": "جستجو ({{searchName}}) ذخیره شد.", + "button": { + "save": { + "label": "ذخیرهٔ این جستجو" + } + }, + "overwrite": "{{searchName}} موجود است. ذخیره سازی منجر به بازنویسی مقدار موجود خواهد شد." + } + }, + "recording": { + "confirmDelete": { + "title": "تأیید حذف", + "desc": { + "selected": "آیا مطمئن هستید که می‌خواهید همهٔ ویدیوهای ضبط‌شدهٔ مرتبط با این مورد بازبینی را حذف کنید؟

برای رد کردن این پنجره در آینده، کلید Shift را نگه دارید." + }, + "toast": { + "success": "ویدیوهای مرتبط با موارد بازبینیِ انتخاب‌شده با موفقیت حذف شد.", + "error": "حذف ناموفق بود: {{error}}" + } + }, + "button": { + "export": "خروجی گرفتن", + "markAsReviewed": "علامت‌گذاری به‌عنوان بازبینی‌شده", + "markAsUnreviewed": "علامت‌گذاری به‌عنوان بازبینی‌نشده", + "deleteNow": "حذف فوری" + } + }, + "imagePicker": { + "selectImage": "یک بندانگشتیِ شیء ردیابی‌شده را انتخاب کنید", + "unknownLabel": "تصویر محرک ذخیره شد", + "search": { + "placeholder": "جستجو بر اساس برچسب یا زیر‌برچسب…" + }, + "noImages": "برای این دوربین بندانگشتی‌ای یافت نشد" } } diff --git a/web/public/locales/fa/components/filter.json b/web/public/locales/fa/components/filter.json index ad7827e25..a742be9f8 100644 --- a/web/public/locales/fa/components/filter.json +++ b/web/public/locales/fa/components/filter.json @@ -5,6 +5,136 @@ "all": { "title": "تمامی کلاس ها" }, - "count_one": "{{count}} کلاس" + "count_one": "{{count}} کلاس", + "count_other": "{{count}} کلاس‌ها" + }, + "labels": { + "label": "برچسب‌ها", + "all": { + "title": "همه برچسب‌ها", + "short": "برچسب‌ها" + }, + "count_one": "{{count}} برچسب", + "count_other": "{{count}} برچسب‌ها" + }, + "zones": { + "label": "ناحیه‌ها", + "all": { + "title": "همهٔ ناحیه‌ها", + "short": "ناحیه‌ها" + } + }, + "dates": { + "selectPreset": "یک پیش‌تنظیم را انتخاب کنید…", + "all": { + "title": "همهٔ تاریخ‌ها", + "short": "تاریخ‌ها" + } + }, + "features": { + "hasVideoClip": "دارای کلیپ ویدئویی است", + "submittedToFrigatePlus": { + "label": "ارسال‌شده به Frigate+", + "tips": "ابتدا باید روی اشیای ردیابی‌شده‌ای که عکس فوری دارند فیلتر کنید.

اشیای ردیابی‌شده بدون عکس فوری نمی‌توانند به Frigate+ ارسال شوند." + }, + "label": "قابلیت‌ها", + "hasSnapshot": "دارای یک عکس فوری" + }, + "sort": { + "label": "مرتب‌سازی", + "dateAsc": "تاریخ (صعودی)", + "dateDesc": "تاریخ (نزولی)", + "scoreAsc": "امتیاز شیء (صعودی)", + "scoreDesc": "امتیاز شیء (نزولی)", + "speedAsc": "سرعت تخمینی (صعودی)", + "speedDesc": "سرعت تخمینی (نزولی)", + "relevance": "آموزش چهره به‌عنوان:ارتباط" + }, + "more": "فیلترهای بیشتر", + "reset": { + "label": "بازنشانی فیلترها به مقادیر پیش‌فرض" + }, + "timeRange": "بازهٔ زمانی", + "subLabels": { + "label": "زیربرچسب‌ها", + "all": "همهٔ زیر برچسب‌ها" + }, + "attributes": { + "label": "ویژگی‌های طبقه‌بندی", + "all": "همهٔ ویژگی‌ها" + }, + "score": "امتیاز", + "estimatedSpeed": "سرعت تخمینی ( {{unit}})", + "cameras": { + "label": "فیلتر دوربین‌ها", + "all": { + "title": "همهٔ دوربین‌ها", + "short": "دوربین‌ها" + } + }, + "logSettings": { + "filterBySeverity": "فیلتر کردن لاگ‌ها بر اساس شدت", + "loading": { + "desc": "وقتی پنل لاگ تا پایین‌ترین نقطه اسکرول شود، لاگ‌های جدید هنگام اضافه‌شدن به‌صورت خودکار نمایش داده می‌شوند.", + "title": "در حال بارگذاری" + }, + "label": "فیلتر سطح لاگ", + "disableLogStreaming": "غیرفعال کردن پخش زندهٔ لاگ", + "allLogs": "همهٔ لاگ‌ها" + }, + "trackedObjectDelete": { + "title": "تأیید حذف", + "toast": { + "success": "اشیای ردیابی‌شده با موفقیت حذف شدند.", + "error": "حذف اشیای ردیابی‌شده ناموفق بود: {{errorMessage}}" + }, + "desc": "حذف این {{objectLength}} شیء ردیابی‌شده باعث حذف عکس فوری، هرگونه امبدینگِ ذخیره‌شده و همهٔ ورودی‌های مرتبط با چرخهٔ عمر شیء می‌شود. ویدیوهای ضبط‌شدهٔ این اشیای ردیابی‌شده در نمای تاریخچه حذف نخواهند شد.

آیا مطمئن هستید که می‌خواهید ادامه دهید؟

برای رد کردن این پنجره در آینده، کلید Shift را نگه دارید." + }, + "zoneMask": { + "filterBy": "فیلتر بر اساس ماسک ناحیه" + }, + "recognizedLicensePlates": { + "loadFailed": "بارگذاری پلاک‌های شناسایی‌شده ناموفق بود.", + "loading": "در حال بارگذاری پلاک‌های شناسایی‌شده…", + "noLicensePlatesFound": "هیچ پلاکی پیدا نشد.", + "selectAll": "انتخاب همه", + "title": "پلاک‌های شناسایی‌شده", + "placeholder": "برای جستجوی پلاک‌ها تایپ کنید…", + "selectPlatesFromList": "یک یا چند پلاک را از فهرست انتخاب کنید.", + "clearAll": "پاک کردن همه" + }, + "review": { + "showReviewed": "نمایش بازبینی‌شده‌ها" + }, + "motion": { + "showMotionOnly": "فقط نمایش حرکت" + }, + "explore": { + "settings": { + "title": "تنظیمات", + "defaultView": { + "title": "نمای پیش‌فرض", + "summary": "خلاصه", + "unfilteredGrid": "شبکهٔ بدون فیلتر", + "desc": "هنگامی که هیچ فیلتری انتخاب نشده باشد، خلاصه ای از آخرین اشیاء ردیابی شده در هر برچسب یا یک شبکه فیلتر نشده نمایش داده خواهد شد." + }, + "gridColumns": { + "title": "ستون‌های شبکه", + "desc": "تعداد ستون‌ها را در نمای شبکه انتخاب کنید." + }, + "searchSource": { + "label": "منبع جستجو", + "desc": "انتخاب کنید که در بندانگشتی‌ها جستجو شود یا در توضیحات اشیای ردیابی‌شده.", + "options": { + "thumbnailImage": "تصویر پیش‌نمایش", + "description": "توضیحات" + } + } + }, + "date": { + "selectDateBy": { + "label": "یک تاریخ را برای فیلتر کردن انتخاب کنید" + } + } } } diff --git a/web/public/locales/fa/components/icons.json b/web/public/locales/fa/components/icons.json index 20111cbaa..0fa7bec26 100644 --- a/web/public/locales/fa/components/icons.json +++ b/web/public/locales/fa/components/icons.json @@ -2,7 +2,7 @@ "iconPicker": { "selectIcon": "انتخاب آیکون", "search": { - "placeholder": "جستجو برای آیکون" + "placeholder": "جستجو برای آیکون…" } } } diff --git a/web/public/locales/fa/components/player.json b/web/public/locales/fa/components/player.json index d82c22d9b..38e543fb1 100644 --- a/web/public/locales/fa/components/player.json +++ b/web/public/locales/fa/components/player.json @@ -1,8 +1,51 @@ { "noRecordingsFoundForThisTime": "ویدیویی برای این زمان وجود ندارد", "noPreviewFound": "پیش‌نمایش پیدا نشد", - "noPreviewFoundFor": "هیچ پیش‌نمایشی برای {{cameraName}} پیدا نشد", + "noPreviewFoundFor": "هیچ پیش‌نمایشی برای {{cameraName}} پیدا نشد", "submitFrigatePlus": { - "title": "این فریم به فریگیت+ ارسال شود؟" + "title": "این فریم به فریگیت+ ارسال شود؟", + "submit": "ارسال" + }, + "livePlayerRequiredIOSVersion": "برای این نوع پخش زنده، iOS 17.1 یا بالاتر لازم است.", + "streamOffline": { + "title": "جریان آفلاین", + "desc": "هیچ فریمی از جریان detect دوربین {{cameraName}} دریافت نشده است، گزارش‌های خطا را بررسی کنید" + }, + "cameraDisabled": "دوربین غیرفعال است", + "stats": { + "streamType": { + "title": "نوع جریان:", + "short": "نوع" + }, + "bandwidth": { + "title": "پهنای باند:", + "short": "پهنای باند" + }, + "latency": { + "title": "تأخیر:", + "value": "{{seconds}} ثانیه‌ها", + "short": { + "title": "تأخیر", + "value": "{{seconds}} ثانیه" + } + }, + "totalFrames": "مجموع فریم‌ها:", + "droppedFrames": { + "title": "فریم‌های از دست‌رفته:", + "short": { + "title": "از دست‌رفته", + "value": "{{droppedFrames}} فریم" + } + }, + "decodedFrames": "فریم‌های رمزگشایی‌شده:", + "droppedFrameRate": "نرخ فریم‌های از دست‌رفته:" + }, + "toast": { + "success": { + "submittedFrigatePlus": "فریم با موفقیت به Frigate+ ارسال شد" + }, + "error": { + "submitFrigatePlusFailed": "ارسال فریم به Frigate+ ناموفق بود" + } } } diff --git a/web/public/locales/fa/objects.json b/web/public/locales/fa/objects.json index 278086db2..c2ce4e4cf 100644 --- a/web/public/locales/fa/objects.json +++ b/web/public/locales/fa/objects.json @@ -16,5 +16,105 @@ "bird": "پرنده", "cat": "گربه", "dog": "سگ", - "horse": "اسب" + "horse": "اسب", + "shoe": "کفش", + "eye_glasses": "عینک", + "handbag": "کیف دستی", + "tie": "کراوات", + "suitcase": "چمدان", + "frisbee": "فریزبی", + "sheep": "گوسفند", + "cow": "گاو", + "elephant": "فیل", + "bear": "خرس", + "zebra": "گورخر", + "giraffe": "زرافه", + "hat": "کلاه", + "umbrella": "چتر", + "skis": "اسکی", + "snowboard": "اسنوبورد", + "sports_ball": "توپ ورزشی", + "kite": "بادبادک", + "baseball_bat": "برای استفاده از چند فیلتر، آن‌ها را یکی پس از دیگری با یک فاصله از هم اضافه کنید.چوب بیسبال", + "baseball_glove": "دستکش بیسبال", + "skateboard": "اسکیت‌بورد", + "hot_dog": "هات‌داگ", + "cake": "کیک", + "couch": "مبل", + "bed": "تخت", + "dining_table": "میز ناهارخوری", + "toilet": "توالت", + "tv": "تلویزیون", + "mouse": "موش", + "keyboard": "صفحه‌کلید", + "goat": "بز", + "oven": "فر", + "sink": "سینک", + "refrigerator": "یخچال", + "book": "کتاب", + "vase": "گلدان", + "scissors": "قیچی", + "hair_dryer": "سشوار", + "hair_brush": "برس مو", + "vehicle": "وسیلهٔ نقلیه", + "deer": "گوزن", + "fox": "روباه", + "raccoon": "راکون", + "on_demand": "در صورت نیاز", + "license_plate": "پلاک خودرو", + "package": "بسته", + "amazon": "آمازون", + "usps": "USPS", + "fedex": "FedEx", + "dhl": "DHL", + "purolator": "پرولاتور", + "postnord": "PostNord", + "backpack": "کوله‌پشتی", + "tennis_racket": "راکت تنیس", + "bottle": "بطری", + "plate": "پلاک", + "wine_glass": "جام شراب", + "cup": "فنجان", + "fork": "چنگال", + "knife": "چاقو", + "spoon": "قاشق", + "bowl": "کاسه", + "banana": "موز", + "apple": "سیب", + "animal": "حیوان", + "sandwich": "ساندویچ", + "orange": "پرتقال", + "broccoli": "بروکلی", + "bark": "پارس", + "carrot": "هویج", + "pizza": "پیتزا", + "donut": "دونات", + "chair": "صندلی", + "potted_plant": "گیاه گلدانی", + "mirror": "آینه", + "window": "پنجره", + "desk": "میز", + "door": "در", + "laptop": "لپ‌تاپ", + "remote": "ریموت", + "cell_phone": "گوشی موبایل", + "microwave": "مایکروویو", + "toaster": "توستر", + "blender": "مخلوط‌کن", + "clock": "ساعت", + "teddy_bear": "خرس عروسکی", + "toothbrush": "مسواک", + "squirrel": "سنجاب", + "rabbit": "خرگوش", + "robot_lawnmower": "چمن‌زن رباتی", + "waste_bin": "سطل زباله", + "face": "چهره", + "bbq_grill": "گریل کباب", + "ups": "یو‌پی‌اس", + "an_post": "آن پُست", + "postnl": "پست‌اِن‌اِل", + "nzpost": "اِن‌زد پُست", + "gls": "جی‌اِل‌اِس", + "dpd": "دی‌پی‌دی", + "surfboard": "تخته موج سواری" } diff --git a/web/public/locales/fa/views/classificationModel.json b/web/public/locales/fa/views/classificationModel.json index 7369674e5..b61d55e4d 100644 --- a/web/public/locales/fa/views/classificationModel.json +++ b/web/public/locales/fa/views/classificationModel.json @@ -4,7 +4,10 @@ "renameCategory": "تغییر نام کلاس", "deleteCategory": "حذف کردن کلاس", "deleteImages": "حذف کردن عکس ها", - "trainModel": "مدل آموزش" + "trainModel": "مدل آموزش", + "addClassification": "افزودن دسته‌بندی", + "deleteModels": "حذف مدل‌ها", + "editModel": "ویرایش مدل" }, "toast": { "success": { @@ -12,11 +15,21 @@ "deletedImage": "عکس های حذف شده", "categorizedImage": "تصویر طبقه بندی شده", "trainedModel": "مدل آموزش دیده شده.", - "trainingModel": "آموزش دادن مدل با موفقیت شروع شد." + "trainingModel": "آموزش دادن مدل با موفقیت شروع شد.", + "deletedModel_one": "{{count}} مدل با موفقیت حذف شد", + "deletedModel_other": "{{count}} مدل با موفقیت حذف شدند", + "updatedModel": "پیکربندی مدل با موفقیت به‌روزرسانی شد", + "renamedCategory": "نام کلاس با موفقیت به {{name}} تغییر یافت" }, "error": { - "deleteImageFailed": "حذف نشد:{{پیغام خطا}}", - "deleteCategoryFailed": "کلاس حذف نشد:{{پیغام خطا}}" + "deleteImageFailed": "حذف نشد: {{errorMessage}}", + "deleteCategoryFailed": "کلاس حذف نشد: {{errorMessage}}", + "deleteModelFailed": "حذف مدل ناموفق بود: {{errorMessage}}", + "categorizeFailed": "دسته‌بندی تصویر ناموفق بود: {{errorMessage}}", + "trainingFailed": "آموزش مدل ناموفق بود. برای جزئیات، گزارش‌های Frigate را بررسی کنید.", + "trainingFailedToStart": "شروع آموزش مدل ناموفق بود: {{errorMessage}}", + "updateModelFailed": "به‌روزرسانی مدل ناموفق بود: {{errorMessage}}", + "renameCategoryFailed": "تغییر نام کلاس ناموفق بود: {{errorMessage}}" } }, "documentTitle": "دسته بندی مدل ها - فریگیت", @@ -27,5 +40,148 @@ "none": "هیچکدام", "scoreInfo": "امتیاز، نشان دهنده میانگین دقت در تشخیص و دسته بندی این شیء در بین تمام تشخیص‌هاست.", "unknown": "ناشناخته" - } + }, + "tooltip": { + "trainingInProgress": "مدل در حال آموزش است", + "noNewImages": "هیچ تصویر جدیدی برای آموزش وجود ندارد. ابتدا تصاویر بیشتری را در مجموعه‌داده دسته‌بندی کنید.", + "noChanges": "از آخرین آموزش، هیچ تغییری در مجموعه‌داده ایجاد نشده است.", + "modelNotReady": "مدل برای آموزش آماده نیست" + }, + "deleteCategory": { + "title": "(pending)", + "desc": "آیا مطمئن هستید که می‌خواهید کلاس {{name}} را حذف کنید؟ این کار همهٔ تصاویر مرتبط را برای همیشه حذف می‌کند و نیاز به آموزش مجدد مدل دارد.", + "minClassesTitle": "امکان حذف کلاس وجود ندارد", + "minClassesDesc": "یک مدل دسته‌بندی باید دست‌کم ۲ کلاس داشته باشد. پیش از حذف این مورد، یک کلاس دیگر اضافه کنید." + }, + "train": { + "titleShort": "اخیر", + "title": "طبقه‌بندی‌های اخیر", + "aria": "انتخاب طبقه‌بندی‌های اخیر" + }, + "deleteModel": { + "title": "حذف مدل دسته‌بندی", + "single": "آیا مطمئن هستید که می‌خواهید {{name}} را حذف کنید؟ این کار همهٔ داده‌های مرتبط از جمله تصاویر و داده‌های آموزش را برای همیشه حذف می‌کند. این عمل قابل بازگشت نیست.", + "desc_one": "آیا مطمئن هستید که می‌خواهید این {{count}} مدل را حذف کنید؟ این کار همهٔ داده‌های مرتبط از جمله تصاویر و داده‌های آموزشی را برای همیشه حذف می‌کند. این عمل قابل بازگشت نیست.", + "desc_other": "آیا مطمئن هستید که می‌خواهید {{count}} مدل را حذف کنید؟ این کار همهٔ داده‌های مرتبط از جمله تصاویر و داده‌های آموزشی را برای همیشه حذف می‌کند. این عمل قابل بازگشت نیست." + }, + "categorizeImage": "طبقه‌بندی تصویر", + "menu": { + "states": "حالت‌ها", + "objects": "اشیاء" + }, + "noModels": { + "object": { + "description": "یک مدل سفارشی ایجاد کنید تا اشیای شناسایی‌شده را طبقه‌بندی کند.", + "title": "هیچ مدل طبقه‌بندی شیء وجود ندارد", + "buttonText": "ایجاد مدل شیء" + }, + "state": { + "title": "هیچ مدل طبقه‌بندی حالت وجود ندارد", + "description": "یک مدل سفارشی ایجاد کنید تا تغییرات وضعیت را در نواحی مشخصِ دوربین پایش و طبقه‌بندی کند.", + "buttonText": "ایجاد مدل وضعیت" + } + }, + "wizard": { + "title": "ایجاد طبقه‌بندی جدید", + "steps": { + "stateArea": "ناحیهٔ حالت", + "nameAndDefine": "نام‌گذاری و تعریف", + "chooseExamples": "انتخاب نمونه‌ها" + }, + "step1": { + "description": "مدل‌های حالت نواحی ثابت دوربین را برای تغییرات پایش می‌کنند (مثلاً درِ باز/بسته). مدل‌های شیء به اشیای شناسایی‌شده طبقه‌بندی اضافه می‌کنند (مثلاً حیوانات شناخته‌شده، مأموران تحویل، و غیره).", + "namePlaceholder": "نام مدل را وارد کنید...", + "type": "نوع", + "typeObject": "شیء", + "objectLabelPlaceholder": "نوع شیء را انتخاب کنید...", + "classificationTypeDesc": "زیر‌برچسب‌ها متن اضافی به برچسب شیء اضافه می‌کنند (مثلاً «Person: UPS»). ویژگی‌ها فرادادهٔ قابل جست‌وجو هستند که جداگانه در فرادادهٔ شیء ذخیره می‌شوند.", + "classificationAttribute": "ویژگی", + "classes": "کلاس‌ها", + "classesTip": "دربارهٔ کلاس‌ها بیشتر بدانید", + "classesObjectDesc": "دسته‌بندی‌های مختلف را برای طبقه‌بندی اشیای شناسایی‌شده تعریف کنید. برای نمونه: «delivery_person»، «resident»، «stranger» برای طبقه‌بندی افراد.", + "errors": { + "nameLength": "نام مدل باید ۶۴ نویسه یا کم‌تر باشد", + "classesUnique": "نام کلاس‌ها باید یکتا باشند", + "stateRequiresTwoClasses": "مدل‌های حالت دست‌کم به ۲ کلاس نیاز دارند", + "objectLabelRequired": "لطفاً یک برچسب شیء را انتخاب کنید", + "nameRequired": "نام مدل الزامی است", + "nameOnlyNumbers": "نام مدل نمی‌تواند فقط شامل عدد باشد", + "noneNotAllowed": "کلاس «none» مجاز نیست", + "classRequired": "حداقل ۱ کلاس لازم است", + "objectTypeRequired": "لطفاً یک نوع طبقه‌بندی را انتخاب کنید" + }, + "name": "نام", + "typeState": "وضعیت", + "objectLabel": "برچسب شیء", + "classificationType": "نوع طبقه‌بندی", + "classificationSubLabel": "زیر‌برچسب", + "classificationTypeTip": "دربارهٔ انواع طبقه‌بندی بیشتر بدانید", + "states": "وضعیت‌ها", + "classesStateDesc": "حالت‌های مختلفی را که ناحیهٔ دوربین شما می‌تواند در آن باشد تعریف کنید. برای مثال: «باز» و «بسته» برای یک درِ گاراژ.", + "classPlaceholder": "نام کلاس را وارد کنید…" + }, + "step2": { + "description": "دوربین‌ها را انتخاب کنید و ناحیه‌ای را که باید برای هر دوربین پایش شود تعریف کنید. مدل، وضعیت این ناحیه‌ها را طبقه‌بندی می‌کند.", + "cameras": "دوربین‌ها", + "noCameras": "برای افزودن دوربین‌ها روی + کلیک کنید", + "selectCamera": "انتخاب دوربین", + "selectCameraPrompt": "برای تعریف ناحیهٔ پایش، یک دوربین را از فهرست انتخاب کنید" + }, + "step3": { + "selectImagesDescription": "برای انتخاب، روی تصاویر کلیک کنید. وقتی کارتان با این کلاس تمام شد روی «ادامه» کلیک کنید.", + "generating": { + "description": "Frigate در حال استخراج تصاویر نماینده از ضبط‌های شماست. ممکن است کمی زمان ببرد…", + "title": "در حال تولید تصاویر نمونه" + }, + "retryGenerate": "تلاش دوباره برای تولید", + "classifying": "در حال طبقه‌بندی و آموزش…", + "trainingStarted": "آموزش با موفقیت شروع شد", + "errors": { + "noCameras": "هیچ دوربینی پیکربندی نشده است", + "noObjectLabel": "هیچ برچسب شیئی انتخاب نشده است", + "generationFailed": "تولید ناموفق بود. لطفاً دوباره تلاش کنید.", + "classifyFailed": "طبقه‌بندی تصاویر ناموفق بود: {{error}}", + "generateFailed": "تولید نمونه‌ها ناموفق بود: {{error}}" + }, + "missingStatesWarning": { + "title": "نمونه‌های وضعیتِ جاافتاده", + "description": "برای بهترین نتیجه، توصیه می‌شود برای همهٔ حالت‌ها نمونه انتخاب کنید. می‌توانید بدون انتخاب همهٔ حالت‌ها ادامه دهید، اما تا زمانی که همهٔ حالت‌ها تصویر نداشته باشند مدل آموزش داده نمی‌شود. پس از ادامه، از نمای «طبقه‌بندی‌های اخیر» برای طبقه‌بندی تصاویرِ حالت‌های جاافتاده استفاده کنید، سپس مدل را آموزش دهید." + }, + "allImagesRequired_one": "لطفاً همهٔ تصاویر را طبقه‌بندی کنید. {{count}} تصویر باقی مانده است.", + "allImagesRequired_other": "لطفاً همهٔ تصاویر را طبقه‌بندی کنید. {{count}} تصویر باقی مانده است.", + "training": { + "title": "در حال آموزش مدل", + "description": "مدل شما در پس‌زمینه در حال آموزش است. این پنجره را ببندید؛ به‌محض تکمیل آموزش، مدل شما شروع به اجرا می‌کند." + }, + "noImages": "هیچ تصویر نمونه‌ای تولید نشد", + "modelCreated": "مدل با موفقیت ایجاد شد. از نمای «طبقه‌بندی‌های اخیر» برای افزودن تصاویرِ وضعیت‌هایِ جاافتاده استفاده کنید، سپس مدل را آموزش دهید.", + "generateSuccess": "تصاویر نمونه با موفقیت تولید شد", + "selectImagesPrompt": "همهٔ تصاویر با {{className}} را انتخاب کنید" + } + }, + "edit": { + "title": "ویرایش مدل طبقه‌بندی", + "descriptionState": "کلاس‌های این مدل طبقه‌بندی حالت را ویرایش کنید. اعمال تغییرات نیاز به بازآموزی مدل دارد.", + "descriptionObject": "نوع شیء و نوع طبقه‌بندی را برای این مدل طبقه‌بندی شیء ویرایش کنید.", + "stateClassesInfo": "توجه: تغییر کلاس‌های وضعیت نیازمند بازآموزی مدل با کلاس‌های به‌روزرسانی‌شده است." + }, + "deleteDatasetImages": { + "title": "حذف تصاویر مجموعه‌داده", + "desc_one": "آیا مطمئن هستید که می‌خواهید این {{count}} تصویر را از {{dataset}} حذف کنید؟ این عمل قابل بازگشت نیست و نیاز به بازآموزی مدل دارد.", + "desc_other": "آیا مطمئن هستید که می‌خواهید {{count}} تصویر را از {{dataset}} حذف کنید؟ این عمل قابل بازگشت نیست و نیاز به بازآموزی مدل دارد." + }, + "deleteTrainImages": { + "title": "حذف تصاویر آموزش", + "desc_one": "آیا مطمئن هستید که می‌خواهید این {{count}} تصویر را حذف کنید؟ این عمل قابل بازگشت نیست.", + "desc_other": "آیا مطمئن هستید که می‌خواهید {{count}} تصویر را حذف کنید؟ این عمل قابل بازگشت نیست." + }, + "renameCategory": { + "title": "تغییر نام کلاس", + "desc": "یک نام جدید برای {{name}} وارد کنید. برای اعمال تغییر نام، لازم است مدل را بازآموزی کنید." + }, + "categories": "کلاس‌ها", + "createCategory": { + "new": "ایجاد کلاس جدید" + }, + "categorizeImageAs": "طبقه‌بندی تصویر به‌عنوان:" } diff --git a/web/public/locales/fa/views/configEditor.json b/web/public/locales/fa/views/configEditor.json index 0c97e3f62..c43489dbb 100644 --- a/web/public/locales/fa/views/configEditor.json +++ b/web/public/locales/fa/views/configEditor.json @@ -3,5 +3,16 @@ "configEditor": "ویرایشگر کانفیگ", "safeConfigEditor": "ویرایشگر تنظیمات (حالت امن)", "safeModeDescription": "فریگیت به دلیل خطا در صحت سنجی پیکربندی، در حالت امن می باشد.", - "copyConfig": "کپی پیکربندی" + "copyConfig": "کپی پیکربندی", + "saveAndRestart": "ذخیره و راه‌اندازی مجدد", + "saveOnly": "فقط ذخیره", + "confirm": "بدون ذخیره خارج می‌شوید؟", + "toast": { + "success": { + "copyToClipboard": "پیکربندی در کلیپ‌بورد کپی شد." + }, + "error": { + "savingError": "خطا در ذخیره‌سازی پیکربندی" + } + } } diff --git a/web/public/locales/fa/views/events.json b/web/public/locales/fa/views/events.json index a56694712..cf3ca7871 100644 --- a/web/public/locales/fa/views/events.json +++ b/web/public/locales/fa/views/events.json @@ -4,5 +4,62 @@ "motion": { "label": "حرکت", "only": "فقط حرکتی" - } + }, + "allCameras": "همه دوربین‌ها", + "empty": { + "alert": "هیچ هشداری برای بازبینی وجود ندارد", + "detection": "هیچ تشخیصی برای بازبینی وجود ندارد", + "motion": "هیچ داده‌ای از حرکت پیدا نشد", + "recordingsDisabled": { + "title": "ضبط‌ها بایستی فعال باشند", + "description": "موارد بازبینی برای یک دوربین تنها درصورتی امکان ساخت دارند که ضبط‌ها برای آن دورین فعال باشد." + } + }, + "timeline": "خط زمانی", + "timeline.aria": "انتخاب خط زمانی", + "zoomIn": "بزرگ‌نمایی", + "zoomOut": "کوچک‌نمایی", + "events": { + "aria": "انتخاب رویدادها", + "noFoundForTimePeriod": "برای این بازهٔ زمانی هیچ رویدادی یافت نشد.", + "label": "رویدادها" + }, + "recordings": { + "documentTitle": "ضبط‌ها - فریگیت" + }, + "calendarFilter": { + "last24Hours": "۲۴ ساعت گذشته" + }, + "markAsReviewed": "علامت‌گذاری به‌عنوان بازبینی‌شده", + "markTheseItemsAsReviewed": "این موارد را به‌عنوان بازبینی‌شده علامت‌گذاری کنید", + "newReviewItems": { + "label": "مشاهدهٔ موارد جدید برای بازبینی", + "button": "موارد جدید برای بازبینی" + }, + "detail": { + "label": "جزئیات", + "noDataFound": "داده‌ای برای بازبینیِ جزئیات وجود ندارد", + "aria": "تغییر وضعیتِ نمای جزئیات", + "trackedObject_one": "{{count}} شیء", + "trackedObject_other": "{{count}} اشیاء", + "noObjectDetailData": "دادهٔ جزئیات شیء در دسترس نیست.", + "settings": "تنظیمات نمای جزئیات", + "alwaysExpandActive": { + "title": "همیشه فعال را باز کنید", + "desc": "در صورت امکان، همیشه جزئیات شیء مربوط به موردِ بازبینیِ فعال را باز کنید." + } + }, + "objectTrack": { + "trackedPoint": "نقطهٔ ردیابی‌شده", + "clickToSeek": "برای رفتن به این زمان کلیک کنید" + }, + "documentTitle": "بازبینی - Frigate", + "selected_one": "{{count}} انتخاب شد", + "selected_other": "{{count}} انتخاب شدند", + "select_all": "همه", + "camera": "دوربین", + "detected": "گزینه‌هاشناسایی شد", + "normalActivity": "عادی", + "needsReview": "نیاز به بازبینی", + "securityConcern": "نگرانی امنیتی" } diff --git a/web/public/locales/fa/views/explore.json b/web/public/locales/fa/views/explore.json index 7ee77df16..d532878c4 100644 --- a/web/public/locales/fa/views/explore.json +++ b/web/public/locales/fa/views/explore.json @@ -1,14 +1,248 @@ { "generativeAI": "هوش مصنوعی تولید کننده", - "documentTitle": "کاوش کردن - فرایگیت", + "documentTitle": "کاوش - فریگیت", "exploreMore": "نمایش اشیا {{label}} بیشتر", "details": { - "timestamp": "زمان دقیق" + "timestamp": "زمان دقیق", + "item": { + "desc": "بررسی جزئیات مورد", + "button": { + "viewInExplore": "مشاهده در کاوش", + "share": "اشتراک‌گذاری این مورد بازبینی" + }, + "tips": { + "hasMissingObjects": "اگر می‌خواهید Frigate اشیای ردیابی‌شده را برای برچسب‌های زیر ذخیره کند، پیکربندی خود را تنظیم کنید: {{objects}} ", + "mismatch_one": "{{count}} شیء غیرقابلدسترس شناسایی شد و در این مورد بازبینی گنجانده شد. این اشیا یا شرایط لازم برای هشدار یا تشخیص را نداشتند یا قبلاً پاکسازی/حذف شدهاند.", + "mismatch_other": "{{count}} شیء غیرقابلدسترس شناسایی شدند و در این مورد بازبینی گنجانده شدند. این اشیا یا شرایط لازم برای هشدار یا تشخیص را نداشتند یا قبلاً پاکسازی/حذف شدهاند." + }, + "toast": { + "success": { + "regenerate": "یک توضیح جدید از {{provider}} درخواست شد. بسته به سرعت ارائه‌دهندهٔ شما، بازتولیدِ توضیح جدید ممکن است کمی زمان ببرد.", + "updatedLPR": "پلاک با موفقیت به‌روزرسانی شد.", + "audioTranscription": "درخواست تبدیل گفتارِ صوت با موفقیت ثبت شد. بسته به سرعت سرور Frigate شما، تکمیل تبدیل گفتار ممکن است کمی زمان ببرد.", + "updatedSublabel": "زیر برچسب با موفقیت به‌روزرسانی شد.", + "updatedAttributes": "ویژگی‌ها با موفقیت به‌روزرسانی شد." + }, + "error": { + "updatedSublabelFailed": "به‌روزرسانی زیر‌برچسب ناموفق بود: {{errorMessage}}", + "updatedAttributesFailed": "به‌روزرسانی ویژگی‌ها ناموفق بود: {{errorMessage}}", + "regenerate": "فراخوانی {{provider}} برای توضیح جدید ناموفق بود: {{errorMessage}}", + "updatedLPRFailed": "به‌روزرسانی پلاک ناموفق بود: {{errorMessage}}", + "audioTranscription": "درخواست رونویسی صدا ناموفق بود: {{errorMessage}}" + } + }, + "title": "جزئیات مورد بازبینی" + }, + "editSubLabel": { + "title": "ویرایش زیر‌برچسب", + "descNoLabel": "برای این شیء ردیابی‌شده یک زیر‌برچسب جدید وارد کنید", + "desc": "برای این {{label}} یک زیر‌برچسب جدید وارد کنید" + }, + "editLPR": { + "desc": "برای {{label}} یک مقدار جدید برای پلاک وارد کنید", + "descNoLabel": "برای این شیء ردیابی‌شده یک مقدار جدید برای پلاک وارد کنید", + "title": "ویرایش پلاک" + }, + "editAttributes": { + "desc": "ویژگی‌های طبقه‌بندی را برای {{label}} انتخاب کنید", + "title": "ویرایش ویژگی‌ها" + }, + "topScore": { + "label": "بالاترین امتیاز", + "info": "بالاترین امتیاز، بالاترین امتیاز میانه برای شیء ردیابی‌شده است؛ بنابراین ممکن است با امتیازی که روی تصویر بندانگشتیِ نتیجهٔ جست‌وجو نمایش داده می‌شود متفاوت باشد." + }, + "recognizedLicensePlate": "پلاک شناسایی‌شده", + "estimatedSpeed": "سرعت تخمینی", + "objects": "اشیا", + "zones": "ناحیه‌ها", + "button": { + "regenerate": { + "title": "بازتولید", + "label": "بازسازی توضیح شیء ردیابی‌شده" + }, + "findSimilar": "یافتن مشابه" + }, + "description": { + "placeholder": "توضیحِ شیء ردیابی‌شده", + "label": "توضیحات", + "aiTips": "Frigate تا زمانی که چرخهٔ عمر شیء ردیابی‌شده پایان نیابد، از ارائه‌دهندهٔ هوش مصنوعی مولد شما درخواست توضیح نمی‌کند." + }, + "expandRegenerationMenu": "باز کردن منوی بازتولید", + "regenerateFromSnapshot": "بازتولید از اسنپ‌شات", + "tips": { + "descriptionSaved": "توضیح با موفقیت ذخیره شد", + "saveDescriptionFailed": "به‌روزرسانی توضیح ناموفق بود: {{errorMessage}}" + }, + "label": "برچسب", + "snapshotScore": { + "label": "امتیاز عکس فوری" + }, + "score": { + "label": "امتیاز" + }, + "attributes": "ویژگی‌های طبقه‌بندی", + "camera": "دوربین", + "regenerateFromThumbnails": "بازسازی از تصاویر بندانگشتی", + "title": { + "label": "عنوان" + } }, "exploreIsUnavailable": { - "title": "نمایش کلی موجود نمی باشد", + "title": "کاوش کردن در دسترس نیست", "embeddingsReindexing": { - "startingUp": "درحال شروع…" + "startingUp": "درحال شروع…", + "context": "پس از اینکه جاسازی‌های شیء ردیابی‌شده، نمایه‌سازی مجدد را به پایان رساندند، می‌توان از کاوش استفاده کرد.", + "estimatedTime": "زمان تخمینی باقی‌مانده:", + "finishingShortly": "به‌زودی تمام می‌شود", + "step": { + "thumbnailsEmbedded": "تصاویر بندانگشتی جاسازی‌شده: ", + "descriptionsEmbedded": "توضیحات جاسازی‌شده: ", + "trackedObjectsProcessed": "اشیای ردیابی‌شدهٔ پردازش‌شده: " + } + }, + "downloadingModels": { + "context": "Frigate در حال دانلود مدل‌های بردارسازی لازم برای پشتیبانی از قابلیت «جست‌وجوی معنایی» است. بسته به سرعت اتصال شبکه شما، این کار ممکن است چند دقیقه طول بکشد.", + "setup": { + "visionModel": "مدل بینایی", + "visionModelFeatureExtractor": "استخراج‌کنندهٔ ویژگی‌های مدل بینایی", + "textModel": "مدل متنی", + "textTokenizer": "توکن‌ساز متن" + }, + "tips": { + "context": "ممکن است بخواهید پس از دانلود مدل‌ها، تعبیه‌های اشیای ردیابی‌شدهٔ خود را دوباره ایندکس کنید." + }, + "error": "خطایی رخ داده است. گزارش‌های Frigate را بررسی کنید." } + }, + "trackingDetails": { + "adjustAnnotationSettings": "تنظیمات حاشیه‌نویسی را تنظیم کنید", + "scrollViewTips": "برای مشاهدهٔ لحظه‌های مهم چرخهٔ زندگی این شیء کلیک کنید.", + "autoTrackingTips": "موقعیت کادرها برای دوربین‌های ردیابی خودکار دقیق نخواهد بود.", + "count": "{{first}} از {{second}}", + "trackedPoint": "نقطهٔ ردیابی‌شده", + "lifecycleItemDesc": { + "visible": "{{label}} شناسایی شد", + "entered_zone": "{{label}} وارد {{zones}} شد", + "active": "{{label}} فعال شد", + "stationary": "{{label}} ساکن شد", + "attribute": { + "faceOrLicense_plate": "{{attribute}} برای {{label}} شناسایی شد", + "other": "{{label}} به‌عنوان {{attribute}} شناسایی شد" + }, + "gone": "{{label}} خارج شد", + "heard": "{{label}} شنیده شد", + "external": "{{label}} شناسایی شد", + "header": { + "zones": "ناحیه‌ها", + "ratio": "نسبت", + "area": "مساحت", + "score": "امتیاز" + } + }, + "title": "جزئیات ردیابی", + "noImageFound": "برای این برچسب زمانی هیچ تصویری یافت نشد.", + "createObjectMask": "ایجاد ماسک شیء", + "annotationSettings": { + "title": "تنظیمات حاشیه‌نویسی", + "showAllZones": { + "title": "نمایش همهٔ مناطق", + "desc": "همیشه مناطق را روی فریم‌هایی که اشیا وارد یک منطقه شده‌اند نمایش دهید." + }, + "offset": { + "toast": { + "success": "افست حاشیه‌نویسی برای {{camera}} در فایل پیکربندی ذخیره شد." + }, + "label": "افست حاشیه‌نویسی", + "desc": "این داده از فید تشخیص دوربین شما می‌آید، اما روی تصاویر فید ضبط‌شده قرار می‌گیرد. بعید است این دو جریان کاملاً هم‌زمان باشند. در نتیجه، کادر محدوده و ویدیو دقیقاً روی هم منطبق نخواهند بود. می‌توانید با این تنظیمات، حاشیه‌نویسی‌ها را در زمان به جلو یا عقب جابه‌جا کنید تا با ویدئوی ضبط‌شده بهتر هم‌تراز شوند.", + "millisecondsToOffset": "میلی‌ثانیه برای جابه‌جایی حاشیه‌نویسی‌های تشخیص. پیش‌فرض: 0 ", + "tips": "اگر پخش ویدیو جلوتر از کادرها و نقاط مسیر است مقدار را کمتر کنید و اگر پخش ویدیو عقب‌تر از آن‌هاست مقدار را بیشتر کنید. این مقدار می‌تواند منفی باشد." + } + }, + "carousel": { + "previous": "اسلاید قبلی", + "next": "اسلاید بعدی" + } + }, + "trackedObjectDetails": "جزئیات شیء ردیابی‌شده", + "type": { + "details": "جزئیات‌ها", + "snapshot": "عکس فوری", + "thumbnail": "پیش‌نمایش", + "video": "ویدیو", + "tracking_details": "جزئیات ردیابی" + }, + "itemMenu": { + "downloadVideo": { + "aria": "دانلود ویدئو", + "label": "دانلود ویدیو" + }, + "downloadSnapshot": { + "label": "دانلود اسنپ‌شات", + "aria": "دانلود عکس" + }, + "downloadCleanSnapshot": { + "label": "دانلود اسنپ‌شاتِ بدون کادر", + "aria": "دانلود عکس فوری بدون کادر" + }, + "viewTrackingDetails": { + "aria": "نمایش جزئیات ردیابی", + "label": "مشاهدهٔ جزئیات ردیابی" + }, + "findSimilar": { + "label": "یافتن مشابه", + "aria": "یافتن اشیای ردیابی‌شدهٔ مشابه" + }, + "addTrigger": { + "label": "افزودن تریگر", + "aria": "افزودن تریگر برای این شیء ردیابی‌شده" + }, + "audioTranscription": { + "aria": "درخواست رونویسیِ صوتی", + "label": "رونویسی" + }, + "submitToPlus": { + "aria": "ارسال به Frigate Plus", + "label": "ارسال به Frigate+" + }, + "viewInHistory": { + "label": "مشاهده در تاریخچه", + "aria": "مشاهده در تاریخچه" + }, + "showObjectDetails": { + "label": "نمایش مسیر شیء" + }, + "hideObjectDetails": { + "label": "پنهان کردن مسیر شیء" + }, + "deleteTrackedObject": { + "label": "حذف این شیء ردیابی‌شده" + } + }, + "noTrackedObjects": "هیچ شیء ردیابی‌شده‌ای پیدا نشد", + "fetchingTrackedObjectsFailed": "خطا در دریافت اشیای ردیابی‌شده: {{errorMessage}}", + "trackedObjectsCount_one": "{{count}} شیء ردیابیشده ", + "trackedObjectsCount_other": "{{count}} اشیای ردیابیشده ", + "dialog": { + "confirmDelete": { + "title": "تأیید حذف", + "desc": "حذف این شیء ردیابی‌شده عکس فوری، هرگونه امبدینگ ذخیره‌شده و هر ورودی مرتبط با جزئیات ردیابی را حذف می‌کند. فیلم ضبط‌شدهٔ این شیء ردیابی‌شده در نمای تاریخ حذف نخواهد شد.

آیا مطمئنید می‌خواهید ادامه دهید؟" + } + }, + "searchResult": { + "tooltip": "{{type}} با {{confidence}}٪ مطابقت داشت", + "previousTrackedObject": "شیء ردیابی‌شدهٔ قبلی", + "nextTrackedObject": "شیء ردیابی‌شدهٔ بعدی", + "deleteTrackedObject": { + "toast": { + "success": "شیء ردیابی‌شده با موفقیت حذف شد.", + "error": "حذف شیء ردیابی‌شده ناموفق بود: {{errorMessage}}" + } + } + }, + "aiAnalysis": { + "title": "تحلیل هوش مصنوعی" + }, + "concerns": { + "label": "نگرانی‌ها" } } diff --git a/web/public/locales/fa/views/exports.json b/web/public/locales/fa/views/exports.json index 30532619c..46aec6287 100644 --- a/web/public/locales/fa/views/exports.json +++ b/web/public/locales/fa/views/exports.json @@ -1,6 +1,23 @@ { - "search": "جستجو", + "search": "یافتن", "documentTitle": "گرفتن خروجی - فریگیت", "noExports": "هیچ خروجی یافت نشد", - "deleteExport": "حذف خروجی" + "deleteExport": "حذف خروجی", + "deleteExport.desc": "آیا مطمئن هستید که می‌خواهید {{exportName}} را حذف کنید؟", + "editExport": { + "title": "تغییر نام خروجی", + "desc": "یک نام جدید برای این خروجی وارد کنید.", + "saveExport": "ذخیرهٔ خروجی" + }, + "tooltip": { + "shareExport": "اشتراک‌گذاری خروجی", + "downloadVideo": "دانلود ویدئو", + "editName": "ویرایش نام", + "deleteExport": "حذف خروجی" + }, + "toast": { + "error": { + "renameExportFailed": "تغییر نام خروجی ناموفق بود: {{errorMessage}}" + } + } } diff --git a/web/public/locales/fa/views/faceLibrary.json b/web/public/locales/fa/views/faceLibrary.json index fa2595f8e..4cf24c268 100644 --- a/web/public/locales/fa/views/faceLibrary.json +++ b/web/public/locales/fa/views/faceLibrary.json @@ -6,6 +6,85 @@ }, "details": { "timestamp": "زمان دقیق", - "unknown": "ناشناخته" + "unknown": "ناشناخته", + "scoreInfo": "امتیاز، میانگینِ وزن‌دارِ امتیاز همهٔ چهره‌هاست که وزن آن براساس اندازهٔ چهره در هر تصویر تعیین می‌شود." + }, + "documentTitle": "کتابخانه چهره - Frigate", + "uploadFaceImage": { + "title": "بارگذاری تصویر چهره", + "desc": "یک تصویر بارگذاری کنید تا چهره‌ها اسکن شوند و برای {{pageToggle}} در نظر گرفته شود" + }, + "collections": "مجموعه‌ها", + "createFaceLibrary": { + "new": "ایجاد چهرهٔ جدید", + "nextSteps": "برای ایجاد یک پایهٔ محکم:
  • از تب «تشخیص‌های اخیر» برای انتخاب و آموزش با تصاویر هر شخصِ شناسایی‌شده استفاده کنید.
  • برای بهترین نتیجه روی تصاویر روبه‌رو تمرکز کنید؛ از آموزش با تصاویری که چهره را از زاویه نشان می‌دهند خودداری کنید.
  • " + }, + "steps": { + "faceName": "نام چهره را وارد کنید", + "uploadFace": "بارگذاری تصویر چهره", + "nextSteps": "مراحل بعدی", + "description": { + "uploadFace": "تصویری از {{name}} بارگذاری کنید که چهرهٔ او را از زاویهٔ روبه‌رو نشان دهد. لازم نیست تصویر فقط به چهرهٔ او برش داده شود." + } + }, + "button": { + "addFace": "افزودن چهره", + "renameFace": "تغییر نام چهره", + "deleteFace": "حذف چهره", + "uploadImage": "بارگذاری تصویر", + "reprocessFace": "پردازش مجدد چهره", + "deleteFaceAttempts": "حذف چهره‌ها" + }, + "imageEntry": { + "validation": { + "selectImage": "لطفاً یک فایل تصویر انتخاب کنید." + }, + "dropActive": "تصویر را اینجا رها کنید…", + "dropInstructions": "یک تصویر را اینجا بکشید و رها کنید یا جای‌گذاری کنید، یا برای انتخاب کلیک کنید", + "maxSize": "حداکثر اندازه: {{size}}MB" + }, + "train": { + "title": "تشخیص‌های اخیر", + "titleShort": "اخیر", + "aria": "تشخیص‌های اخیر را انتخاب کنید", + "empty": "تلاشِ اخیر برای تشخیص چهره وجود ندارد" + }, + "deleteFaceLibrary": { + "title": "حذف نام", + "desc": "آیا مطمئن هستید می‌خواهید مجموعهٔ {{name}} را حذف کنید؟ این کار همهٔ چهره‌های مرتبط را برای همیشه حذف می‌کند." + }, + "deleteFaceAttempts": { + "title": "حذف چهره‌ها", + "desc_one": "آیا مطمئن هستید که می‌خواهید {{count}} چهره را حذف کنید؟ این عمل قابل بازگشت نیست.", + "desc_other": "آیا مطمئن هستید که می‌خواهید {{count}} چهره را حذف کنید؟ این عمل قابل بازگشت نیست." + }, + "renameFace": { + "title": "تغییر نام چهره", + "desc": "یک نام جدید برای {{name}} وارد کنید" + }, + "nofaces": "هیچ چهره‌ای موجود نیست", + "trainFaceAs": "شناسایی شدآموزش چهره به‌عنوان:", + "trainFace": "آموزش چهره", + "toast": { + "success": { + "uploadedImage": "تصویر با موفقیت بارگذاری شد.", + "addFaceLibrary": "{{name}} با موفقیت به کتابخانهٔ چهره اضافه شد!", + "deletedFace_one": "حذف این {{count}} چهره با موفقیت انجام شد.", + "deletedFace_other": "حذف {{count}} چهره با موفقیت انجام شد.", + "deletedName_one": "{{count}} چهره با موفقیت حذف شد.", + "deletedName_other": "{{count}} چهره با موفقیت حذف شدند.", + "renamedFace": "نام چهره با موفقیت به {{name}} تغییر یافت", + "trainedFace": "آموزش چهره با موفقیت انجام شد.", + "updatedFaceScore": "امتیاز چهره با موفقیت به {{name}} ( {{score}}) به‌روزرسانی شد." + }, + "error": { + "uploadingImageFailed": "آپلود تصویر ناموفق بود: {{errorMessage}}", + "addFaceLibraryFailed": "تنظیم نام چهره ناموفق بود: {{errorMessage}}", + "deleteFaceFailed": "حذف ناموفق بود: {{errorMessage}}", + "deleteNameFailed": "حذف نام ناموفق بود: {{errorMessage}}", + "renameFaceFailed": "تغییر نام چهره ناموفق بود: {{errorMessage}}", + "trainFailed": "آموزش ناموفق بود: {{errorMessage}}", + "updateFaceScoreFailed": "به‌روزرسانی امتیاز چهره ناموفق بود: {{errorMessage}}" + } } } diff --git a/web/public/locales/fa/views/live.json b/web/public/locales/fa/views/live.json index 97faeda8b..383da433c 100644 --- a/web/public/locales/fa/views/live.json +++ b/web/public/locales/fa/views/live.json @@ -3,9 +3,184 @@ "documentTitle.withCamera": "{{camera}} - زنده - فریگیت", "lowBandwidthMode": "حالت کاهش مصرف پهنای باند", "twoWayTalk": { - "enable": "فعال سازی مکالمه دوطرفه" + "enable": "فعال سازی مکالمه دوطرفه", + "disable": "غیرفعال کردن گفتگوی دوطرفه" }, "cameraAudio": { - "enable": "فعالسازی صدای دوربین" + "enable": "فعالسازی صدای دوربین", + "disable": "غیرفعال کردن صدای دوربین" + }, + "ptz": { + "move": { + "clickMove": { + "label": "برای قرار دادن دوربین در مرکز، در کادر کلیک کنید", + "enable": "فعال‌سازی کلیک برای جابه‌جایی", + "disable": "غیرفعال‌سازی کلیک برای جابه‌جایی" + }, + "left": { + "label": "دوربین PTZ را به چپ حرکت دهید" + }, + "up": { + "label": "دوربین PTZ را به بالا حرکت دهید" + }, + "right": { + "label": "دوربین PTZ را به راست حرکت دهید" + }, + "down": { + "label": "دوربین PTZ را به پایین حرکت دهید" + } + }, + "zoom": { + "in": { + "label": "روی دوربین PTZ بزرگ‌نمایی کنید" + }, + "out": { + "label": "روی دوربین PTZ کوچک‌نمایی کنید" + } + }, + "focus": { + "in": { + "label": "فوکوس دوربین PTZ را به داخل ببرید" + }, + "out": { + "label": "فوکوس دوربین PTZ را به بیرون ببرید" + } + }, + "frame": { + "center": { + "label": "برای قرار دادن دوربین PTZ در مرکز، داخل کادر کلیک کنید" + } + }, + "presets": "پیش‌تنظیم‌های دوربین PTZ" + }, + "recording": { + "disable": "غیرفعال کردن ضبط", + "enable": "فعال‌سازی ضبط" + }, + "snapshots": { + "enable": "فعال کردن عکس‌های فوری", + "disable": "غیرفعال کردن عکس‌های فوری" + }, + "snapshot": { + "takeSnapshot": "دانلود عکس فوری", + "noVideoSource": "منبع ویدیویی برای عکس فوری در دسترس نیست.", + "captureFailed": "گرفتن عکس فوری ناموفق بود.", + "downloadStarted": "دانلود عکس فوری آغاز شد." + }, + "camera": { + "enable": "فعال کردن دوربین", + "disable": "غیرفعال کردن دوربین" + }, + "muteCameras": { + "enable": "بی‌صدا کردن همهٔ دوربین‌ها", + "disable": "قطع بی‌صدا برای همهٔ دوربین‌ها" + }, + "detect": { + "enable": "فعال‌سازی تشخیص", + "disable": "غیرفعال‌سازی تشخیص" + }, + "audioDetect": { + "enable": "فعال‌سازی تشخیص صدا", + "disable": "غیرفعال‌سازی تشخیص صدا" + }, + "transcription": { + "enable": "فعال‌سازی رونوشت‌برداری زندهٔ صدا", + "disable": "غیرفعال‌سازی رونوشت‌برداری زندهٔ صدا" + }, + "autotracking": { + "enable": "فعال‌سازی ردیابی خودکار", + "disable": "غیرفعال کردن ردیابی خودکار" + }, + "streamingSettings": "تنظیمات استریم", + "audio": "صدا", + "stream": { + "title": "جریان", + "audio": { + "tips": { + "title": "برای این استریم، صدا باید از دوربین شما خروجی داده شود و در go2rtc پیکربندی شده باشد." + }, + "unavailable": "صدا برای این استریم در دسترس نیست", + "available": "برای این جریان صدا در دسترس است" + }, + "twoWayTalk": { + "tips": "دستگاه شما باید از این قابلیت پشتیبانی کند و WebRTC برای مکالمهٔ دوطرفه پیکربندی شده باشد.", + "unavailable": "مکالمهٔ دوطرفه برای این استریم در دسترس نیست", + "available": "گفت‌وگوی دوطرفه برای این جریان در دسترس است" + }, + "playInBackground": { + "label": "پخش در پس‌زمینه", + "tips": "این گزینه را فعال کنید تا هنگام پنهان بودن پخش‌کننده، پخش زنده ادامه یابد." + }, + "debug": { + "picker": "انتخاب جریان در حالت اشکال‌زدایی در دسترس نیست. نمای اشکال‌زدایی همیشه از جریانی استفاده می‌کند که نقش detect به آن اختصاص داده شده است." + }, + "lowBandwidth": { + "tips": "به‌دلیل بافر شدن یا خطاهای جریان، نمای زنده در حالت کم‌پهنای‌باند است.", + "resetStream": "بازنشانی جریان" + } + }, + "cameraSettings": { + "title": "تنظیمات {{camera}}", + "objectDetection": "تشخیص شیء", + "snapshots": "اسنپ‌شات‌ها", + "audioDetection": "تشخیص صدا", + "autotracking": "ردیابی خودکار", + "cameraEnabled": "دوربین فعال", + "recording": "ضبط", + "transcription": "رونویسی صوتی" + }, + "effectiveRetainMode": { + "modes": { + "motion": "حرکت", + "all": "همه", + "active_objects": "اشیای فعال" + } + }, + "editLayout": { + "label": "ویرایش چیدمان", + "group": { + "label": "ویرایش گروه دوربین" + }, + "exitEdit": "خروج از حالت ویرایش" + }, + "noCameras": { + "title": "هیچ دوربینی پیکربندی نشده است", + "buttonText": "افزودن دوربین", + "restricted": { + "description": "شما اجازهٔ مشاهدهٔ هیچ دوربینی را در این گروه ندارید.", + "title": "هیچ دوربینی در دسترس نیست" + }, + "description": "برای شروع، یک دوربین را به Frigate متصل کنید." + }, + "streamStats": { + "enable": "نمایش آمار پخش", + "disable": "پنهان کردن آمار پخش" + }, + "manualRecording": { + "tips": "بر اساس تنظیمات نگهداری ضبطِ این دوربین، یک عکس فوری دانلود کنید یا یک رویداد دستی را شروع کنید.", + "playInBackground": { + "label": "پخش در پس‌زمینه", + "desc": "این گزینه را فعال کنید تا هنگام پنهان بودن پخش‌کننده، پخش زنده ادامه یابد." + }, + "showStats": { + "label": "نمایش آمار", + "desc": "این گزینه را فعال کنید تا آمار پخش به‌صورت هم‌پوشان روی تصویر دوربین نمایش داده شود." + }, + "debugView": "نمای اشکال‌زدایی", + "start": "شروع ضبط درخواستی", + "started": "ضبط دستیِ درخواستی شروع شد.", + "failedToStart": "شروع ضبط دستیِ درخواستی ناموفق بود.", + "recordDisabledTips": "از آن‌جا که ضبط برای این دوربین در تنظیمات غیرفعال یا محدود شده است، فقط یک عکس فوری ذخیره می‌شود.", + "end": "پایان ضبط درخواستی", + "ended": "ضبط دستیِ درخواستی پایان یافت.", + "failedToEnd": "پایان دادنِ ضبط دستیِ درخواستی ناموفق بود.", + "title": "بر حسب تقاضا" + }, + "notifications": "اعلان‌ها", + "suspend": { + "forTime": "تعلیق به مدت: " + }, + "history": { + "label": "نمایش ویدیوهای تاریخی" } } diff --git a/web/public/locales/fa/views/recording.json b/web/public/locales/fa/views/recording.json index 664f93ef6..a7a9a133c 100644 --- a/web/public/locales/fa/views/recording.json +++ b/web/public/locales/fa/views/recording.json @@ -1,6 +1,12 @@ { "filter": "فیلتر", - "export": "گرفتن خروجی", - "calendar": "تفویم", - "filters": "فیلترها" + "export": "خروجی گرفتن", + "calendar": "تقویم", + "filters": "فیلترها", + "toast": { + "error": { + "noValidTimeSelected": "بازهٔ زمانی معتبری انتخاب نشده است", + "endTimeMustAfterStartTime": "زمان پایان باید بعد از زمان شروع باشد" + } + } } diff --git a/web/public/locales/fa/views/search.json b/web/public/locales/fa/views/search.json index 092c45f82..007abe106 100644 --- a/web/public/locales/fa/views/search.json +++ b/web/public/locales/fa/views/search.json @@ -1,9 +1,73 @@ { - "search": "جستجو", + "search": "یافتن", "savedSearches": "جستجوهای ذخیره شده", - "searchFor": "جستجو برای {{inputValue}}", + "searchFor": "جستجو برای {{inputValue}}", "button": { "clear": "پاک کردن جستجو", - "save": "ذخیره جستجو" + "save": "ذخیره جست‌وجو", + "delete": "حذف جستجوی ذخیره‌شده", + "filterInformation": "اطلاعات فیلتر", + "filterActive": "فیلترها فعال‌اند" + }, + "trackedObjectId": "شناسهٔ شیء ردیابی‌شده", + "filter": { + "label": { + "cameras": "دوربین‌ها", + "labels": "برچسب‌ها", + "sub_labels": "زیر‌برچسب‌ها", + "attributes": "صفت‌ها", + "search_type": "نوع جستجو", + "time_range": "بازهٔ زمانی", + "zones": "ناحیه‌ها", + "before": "قبل از", + "after": "بعد از", + "min_score": "حداقل امتیاز", + "max_score": "حداکثر امتیاز", + "min_speed": "حداقل سرعت", + "max_speed": "حداکثر سرعت", + "recognized_license_plate": "پلاک شناسایی‌شده", + "has_clip": "دارای کلیپ", + "has_snapshot": "دارای عکس فوری" + }, + "toast": { + "error": { + "beforeDateBeLaterAfter": "تاریخ 'قبل از' باید بعد از تاریخ 'بعد از' باشد.", + "afterDatebeEarlierBefore": "تاریخ 'بعد از' باید قبل از تاریخ 'قبل از' باشد.", + "minScoreMustBeLessOrEqualMaxScore": "'min_score' باید کمتر یا مساوی 'max_score' باشد.", + "maxScoreMustBeGreaterOrEqualMinScore": "'max_score' باید بزرگ‌تر یا مساوی 'min_score' باشد.", + "minSpeedMustBeLessOrEqualMaxSpeed": "'min_speed' باید کمتر یا مساوی 'max_speed' باشد.", + "maxSpeedMustBeGreaterOrEqualMinSpeed": "'max_speed' باید بزرگ‌تر یا مساوی 'min_speed' باشد." + } + }, + "searchType": { + "thumbnail": "پیش‌نمایش", + "description": "توضیحات" + }, + "tips": { + "title": "نحوهٔ استفاده از فیلترهای متنی", + "desc": { + "text": "فیلترها به شما کمک می‌کنند نتایج جست‌وجوی خود را محدودتر کنید. در اینجا نحوهٔ استفاده از آن‌ها در فیلد ورودی آمده است:", + "step1": "نام کلید فیلتر را بنویسید و بعد از آن دونقطه بگذارید (مثلاً \"cameras:\").", + "step2": "از پیشنهادها یک مقدار را انتخاب کنید یا مقدار دلخواه خود را تایپ کنید.", + "step3": "برای استفاده از چند فیلتر، آن‌ها را یکی پس از دیگری با یک فاصله از هم اضافه کنید.", + "step4": "فیلترهای تاریخ (before: و after:) از قالب {{DateFormat}} استفاده می‌کنند.", + "step5": "فیلتر بازهٔ زمانی از قالب {{exampleTime}} استفاده می‌کند.", + "exampleLabel": "مثال:", + "step6": "فیلترها را با کلیک بر روی 'x' کنار آنها حذف کنید." + } + }, + "header": { + "currentFilterType": "مقادیر فیلتر", + "noFilters": "فیلترها", + "activeFilters": "فیلترهای فعال" + } + }, + "similaritySearch": { + "title": "جستجوی مشابهت", + "active": "جستجوی مشابهت فعال است", + "clear": "پاک کردن جستجوی مشابهت" + }, + "placeholder": { + "search": "جستجو…" } } diff --git a/web/public/locales/fa/views/settings.json b/web/public/locales/fa/views/settings.json index 4861489d3..d2f7ce17b 100644 --- a/web/public/locales/fa/views/settings.json +++ b/web/public/locales/fa/views/settings.json @@ -5,6 +5,1065 @@ "camera": "تنظیمات دوربین - فریگیت", "cameraManagement": "مدیریت دوربین ها - فریگیت", "cameraReview": "بازبینی تنظیمات دوربین - فریگیت", - "masksAndZones": "ویرایشگر ماسک و منطقه - فریگیت" + "masksAndZones": "ویرایشگر ماسک و منطقه - فریگیت", + "enrichments": "تنظیمات غنی‌سازی‌ها - Frigate", + "motionTuner": "تنظیم‌کنندهٔ حرکت - Frigate", + "object": "اشکال‌زدایی - Frigate", + "general": "تنظیمات رابط کاربری - فریگیت", + "frigatePlus": "تنظیمات Frigate+ - Frigate", + "notifications": "تنظیمات اعلان‌ها - Frigate" + }, + "menu": { + "ui": "رابط کاربری", + "enrichments": "غنی‌سازی‌ها", + "cameraManagement": "مدیریت", + "cameraReview": "بازبینی", + "masksAndZones": "ماسک‌ها / ناحیه‌ها", + "motionTuner": "تنظیم‌کنندهٔ حرکت", + "triggers": "محرک‌ها", + "debug": "اشکال‌زدایی", + "users": "کاربران", + "roles": "نقش‌ها", + "notifications": "اعلان‌ها", + "frigateplus": "فریگیت+" + }, + "general": { + "title": "تنظیمات رابط کاربری", + "liveDashboard": { + "title": "داشبورد زنده", + "automaticLiveView": { + "label": "نمای زندهٔ خودکار", + "desc": "وقتی فعالیت تشخیص داده شود، به‌طور خودکار به نمای زندهٔ دوربین جابه‌جا شوید. غیرفعال کردن این گزینه باعث می‌شود تصاویر ثابت دوربین در داشبورد زنده فقط هر یک دقیقه یک‌بار به‌روزرسانی شوند." + }, + "playAlertVideos": { + "label": "پخش ویدیوهای هشدار", + "desc": "به‌طور پیش‌فرض، هشدارهای اخیر در داشبورد زنده به‌صورت ویدیوهای کوچکِ حلقه‌ای پخش می‌شوند. این گزینه را غیرفعال کنید تا فقط یک تصویر ثابت از هشدارهای اخیر در این دستگاه/مرورگر نمایش داده شود." + }, + "displayCameraNames": { + "label": "نمایش همیشهٔ نام دوربین‌ها", + "desc": "نام دوربین‌ها را همیشه به‌صورت یک برچسب در داشبورد نمای زندهٔ چند دوربینه نشان بده." + }, + "liveFallbackTimeout": { + "label": "مهلت بازگشت پخش زنده", + "desc": "وقتی پخش زندهٔ باکیفیتِ دوربین در دسترس نیست، پس از این تعداد ثانیه به حالت کم‌پهنای‌باند برگردد. پیش‌فرض: ۳." + } + }, + "storedLayouts": { + "title": "چیدمان‌های ذخیره‌شده", + "desc": "چیدمان دوربین‌ها در یک گروه دوربین قابل کشیدن و تغییر اندازه است. موقعیت‌ها در فضای ذخیره‌سازی محلی مرورگر شما ذخیره می‌شوند.", + "clearAll": "پاک کردن همهٔ چیدمان‌ها" + }, + "cameraGroupStreaming": { + "title": "تنظیمات پخش گروه دوربین", + "desc": "تنظیمات پخش برای هر گروه دوربین در فضای ذخیره‌سازی محلی مرورگر شما ذخیره می‌شود.", + "clearAll": "پاک کردن همهٔ تنظیمات پخش" + }, + "recordingsViewer": { + "title": "نمایشگر ضبط‌ها", + "defaultPlaybackRate": { + "label": "نرخ پخش پیش‌فرض", + "desc": "نرخ پخش پیش‌فرض برای پخش ضبط‌ها." + } + }, + "calendar": { + "title": "تقویم", + "firstWeekday": { + "label": "اولین روز هفته", + "desc": "روزی که هفته‌های تقویمِ بازبینی از آن آغاز می‌شوند.", + "sunday": "یکشنبه", + "monday": "دوشنبه" + } + }, + "toast": { + "success": { + "clearStoredLayout": "چیدمان ذخیره‌شده برای {{cameraName}} پاک شد", + "clearStreamingSettings": "تنظیمات پخش برای همهٔ گروه‌های دوربین پاک شد." + }, + "error": { + "clearStoredLayoutFailed": "پاک کردن چیدمان ذخیره‌شده ناموفق بود: {{errorMessage}}", + "clearStreamingSettingsFailed": "پاک کردن تنظیمات پخش ناموفق بود: {{errorMessage}}" + } + } + }, + "dialog": { + "unsavedChanges": { + "title": "تغییرات ذخیره‌نشده دارید.", + "desc": "آیا می‌خواهید پیش از ادامه، تغییرات خود را ذخیره کنید؟" + } + }, + "cameraSetting": { + "camera": "دوربین", + "noCamera": "بدون دوربین" + }, + "enrichments": { + "unsavedChanges": "تغییرات ذخیره‌نشدهٔ تنظیمات غنی‌سازی", + "birdClassification": { + "desc": "طبقه‌بندی پرندگان با استفاده از یک مدل Tensorflow کوانتیزه‌شده، پرندگان شناخته‌شده را شناسایی می‌کند. وقتی یک پرندهٔ شناخته‌شده شناسایی شود، نام رایج آن به‌عنوان sub_label اضافه می‌شود. این اطلاعات در رابط کاربری، فیلترها و همچنین در اعلان‌ها گنجانده می‌شود.", + "title": "طبقه‌بندی پرندگان" + }, + "semanticSearch": { + "desc": "جست‌وجوی معنایی در Frigate به شما اجازه می‌دهد اشیای ردیابی‌شده را در آیتم‌های بازبینی، با استفاده از خودِ تصویر، یک توضیح متنیِ تعریف‌شده توسط کاربر، یا یک توضیحِ تولیدشدهٔ خودکار پیدا کنید.", + "reindexNow": { + "confirmTitle": "تأیید بازنمایه‌سازی", + "confirmButton": "بازنمایه‌سازی", + "alreadyInProgress": "بازنمایه‌سازی از قبل در حال انجام است.", + "label": "بازنمایه‌سازی اکنون", + "desc": "بازنمایه‌سازی، امبدینگ‌ها را برای همهٔ اشیای ردیابی‌شده دوباره تولید می‌کند. این فرایند در پس‌زمینه اجرا می‌شود و بسته به تعداد اشیای ردیابی‌شده‌ای که دارید، ممکن است CPU شما را به سقف برساند و زمان قابل‌توجهی طول بکشد.", + "confirmDesc": "آیا مطمئن هستید که می‌خواهید همهٔ امبدینگ‌های اشیای ردیابی‌شده را بازنمایه‌سازی کنید؟ این فرایند در پس‌زمینه اجرا می‌شود، اما ممکن است CPU شما را به سقف برساند و زمان قابل‌توجهی طول بکشد. می‌توانید پیشرفت را در صفحهٔ Explore مشاهده کنید.", + "success": "بازنمایه‌سازی با موفقیت شروع شد.", + "error": "شروع بازنمایه‌سازی ناموفق بود: {{errorMessage}}" + }, + "modelSize": { + "label": "اندازهٔ مدل", + "desc": "اندازهٔ مدلی که برای بردارهای جست‌وجوی معنایی استفاده می‌شود.", + "small": { + "desc": "استفاده از small از نسخهٔ کوانتیزهٔ مدل استفاده می‌کند که RAM کم‌تری مصرف می‌کند و روی CPU سریع‌تر اجرا می‌شود، با تفاوت بسیار ناچیز در کیفیت embedding.", + "title": "کوچک" + }, + "large": { + "desc": "استفاده از large از مدل کامل Jina استفاده می‌کند و در صورت امکان به‌طور خودکار روی GPU اجرا می‌شود.", + "title": "بزرگ" + } + }, + "title": "جستجوی معنایی" + }, + "faceRecognition": { + "desc": "تشخیص چهره امکان می‌دهد برای افراد نام تعیین شود و وقتی چهرهٔ آن‌ها شناسایی شود، Frigate نام فرد را به‌عنوان زیر‌برچسب اختصاص می‌دهد. این اطلاعات در رابط کاربری، فیلترها و همچنین در اعلان‌ها گنجانده می‌شود.", + "modelSize": { + "label": "اندازهٔ مدل", + "small": { + "title": "کوچک", + "desc": "استفاده از کوچک یک مدل امبدینگ چهرهٔ FaceNet را به‌کار می‌گیرد که روی بیشتر CPUها به‌صورت بهینه اجرا می‌شود." + }, + "large": { + "title": "بزرگ", + "desc": "استفاده از large از مدل embedding چهرهٔ ArcFace استفاده می‌کند و در صورت امکان به‌طور خودکار روی GPU اجرا می‌شود." + }, + "desc": "اندازه مدل مورد استفاده برای تشخیص چهره." + }, + "title": "شناسایی چهره" + }, + "licensePlateRecognition": { + "desc": "Frigate می‌تواند پلاک خودروها را تشخیص دهد و نویسه‌های شناسایی‌شده را به‌طور خودکار به فیلد recognized_license_plate اضافه کند، یا یک نام شناخته‌شده را به‌عنوان sub_label به اشیایی که از نوع car هستند اضافه کند. یک کاربرد رایج می‌تواند خواندن پلاک خودروهایی باشد که وارد پارکینگ/حیاط می‌شوند یا خودروهایی که از خیابان عبور می‌کنند.", + "title": "شناسایی پلاک خودرو" + }, + "toast": { + "success": "تنظیمات غنی‌سازی ذخیره شد. برای اعمال تغییرات، Frigate را دوباره راه‌اندازی کنید.", + "error": "ذخیرهٔ تغییرات پیکربندی ناموفق بود: {{errorMessage}}" + }, + "title": "تنظیمات غنی‌سازی‌ها", + "restart_required": "نیاز به راه‌اندازی مجدد (تنظیمات غنی‌سازی‌ها تغییر کرد)" + }, + "cameraWizard": { + "description": "برای افزودن یک دوربین جدید به نصب Frigate خود، مراحل زیر را دنبال کنید.", + "steps": { + "streamConfiguration": "پیکربندی استریم", + "nameAndConnection": "نام و اتصال", + "probeOrSnapshot": "پروب یا اسنپ‌شات", + "validationAndTesting": "اعتبارسنجی و آزمون" + }, + "save": { + "success": "دوربین جدید {{cameraName}} با موفقیت ذخیره شد.", + "failure": "خطا در ذخیرهٔ {{cameraName}}." + }, + "testResultLabels": { + "video": "ویدئو", + "audio": "صدا", + "fps": "FPS", + "resolution": "وضوح" + }, + "commonErrors": { + "noUrl": "لطفاً یک URL معتبر برای استریم ارائه کنید", + "testFailed": "آزمون استریم ناموفق بود: {{error}}" + }, + "step1": { + "cameraName": "نام دوربین", + "port": "پورت", + "password": "گذرواژه", + "cameraBrand": "برند دوربین", + "customUrl": "URL سفارشی استریم", + "brandInformation": "اطلاعات برند", + "customUrlPlaceholder": "rtsp://نام‌کاربری:رمز@سرور:پورت/مسیر", + "connectionSettings": "تنظیمات اتصال", + "probeMode": "پروبِ دوربین", + "onvifPortDescription": "برای دوربین‌هایی که از ONVIF پشتیبانی می‌کنند، معمولاً ۸۰ یا ۸۰۸۰ است.", + "useDigestAuth": "استفاده از احراز هویت Digest", + "description": "جزئیات دوربین خود را وارد کنید و انتخاب کنید دوربین بررسی شود یا برند را به‌صورت دستی انتخاب کنید.", + "cameraNamePlaceholder": "مثلاً front_door یا Back Yard Overview", + "host": "میزبان/آدرس IP", + "username": "نام کاربری", + "usernamePlaceholder": "اختیاری", + "passwordPlaceholder": "اختیاری", + "selectTransport": "انتخاب پروتکل انتقال", + "selectBrand": "برند دوربین را برای قالب URL انتخاب کنید", + "brandUrlFormat": "برای دوربین‌هایی با قالب URL ‏RTSP به‌شکل: {{exampleUrl}}", + "detectionMethod": "روش تشخیص جریان", + "onvifPort": "پورت ONVIF", + "manualMode": "انتخاب دستی", + "detectionMethodDescription": "دوربین را با ONVIF (در صورت پشتیبانی) بررسی کنید تا URLهای جریان دوربین پیدا شوند، یا برند دوربین را به‌صورت دستی انتخاب کنید تا از URLهای ازپیش‌تعریف‌شده استفاده شود. برای وارد کردن یک URL سفارشی RTSP، روش دستی را انتخاب کنید و «Other» را برگزینید.", + "useDigestAuthDescription": "برای ONVIF از احراز هویت Digest‏ HTTP استفاده کنید. برخی دوربین‌ها ممکن است به‌جای کاربر مدیر استاندارد، به یک نام‌کاربری/گذرواژهٔ اختصاصی ONVIF نیاز داشته باشند.", + "errors": { + "brandOrCustomUrlRequired": "یا یک برند دوربین را همراه با میزبان/آدرس IP انتخاب کنید یا «Other» را با یک URL سفارشی برگزینید", + "nameRequired": "نام دوربین الزامی است", + "nameLength": "نام دوربین باید ۶۴ کاراکتر یا کمتر باشد", + "invalidCharacters": "نام دوربین شامل نویسه‌های نامعتبر است", + "nameExists": "نام دوربین از قبل وجود دارد", + "customUrlRtspRequired": "URLهای سفارشی باید با «rtsp://» شروع شوند. برای جریان‌های دوربینِ غیر RTSP پیکربندی دستی لازم است." + } + }, + "title": "افزودن دوربین", + "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": "URLهای RTSP زیر از بررسی دوربین به‌دست آمد. برای مشاهدهٔ فرادادهٔ جریان، اتصال را آزمایش کنید.", + "noRtspCandidates": "هیچ URL ‏RTSPای از دوربین پیدا نشد. ممکن است اطلاعات کاربری شما نادرست باشد، یا دوربین از ONVIF یا روشِ استفاده‌شده برای بازیابی URLهای RTSP پشتیبانی نکند. برگردید و URL ‏RTSP را به‌صورت دستی وارد کنید.", + "candidateStreamTitle": "کاندیدا {{number}}", + "useCandidate": "استفاده", + "uriCopy": "کپی", + "uriCopied": "نشانی URI در کلیپ‌بورد کپی شد", + "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": "برای ادامه، حداقل یک جریان باید نقش «detect» داشته باشد.", + "rolesPopover": { + "title": "نقش‌های جریان", + "detect": "فید اصلی برای تشخیص شیء.", + "record": "بر اساس تنظیمات پیکربندی، بخش‌هایی از فید ویدیو را ذخیره می‌کند.", + "audio": "فید برای تشخیص مبتنی بر صدا." + }, + "featuresPopover": { + "title": "ویژگی‌های جریان", + "description": "برای کاهش تعداد اتصال‌ها به دوربین خود از بازپخش go2rtc استفاده کنید." + } + }, + "step4": { + "validationTitle": "اعتبارسنجی جریان", + "connectAllStreams": "اتصال همهٔ جریان‌ها", + "reconnectionSuccess": "اتصال مجدد با موفقیت انجام شد.", + "reconnectionPartial": "اتصال مجدد برخی جریان‌ها ناموفق بود.", + "streamUnavailable": "پیش‌نمایش جریان در دسترس نیست", + "reload": "بارگذاری مجدد", + "streamTitle": "جریان {{number}}", + "valid": "معتبر", + "failed": "ناموفق", + "notTested": "آزمون نشده", + "connectStream": "اتصال", + "connectingStream": "در حال اتصال", + "disconnectStream": "قطع اتصال", + "estimatedBandwidth": "پهنای باند تخمینی", + "roles": "نقش‌ها", + "ffmpegModule": "استفاده از حالت سازگاری جریان", + "ffmpegModuleDescription": "اگر جریان پس از چند تلاش بارگذاری نشد، فعال‌کردن این گزینه را امتحان کنید. وقتی فعال باشد، Frigate از ماژول ffmpeg همراه با go2rtc استفاده می‌کند. این کار ممکن است با برخی جریان‌های دوربین سازگاری بهتری فراهم کند.", + "none": "هیچ‌کدام", + "error": "خطا", + "streamValidated": "اعتبارسنجی جریان {{number}} با موفقیت انجام شد", + "streamValidationFailed": "اعتبارسنجی جریان {{number}} ناموفق بود", + "saveAndApply": "ذخیرهٔ دوربین جدید", + "saveError": "پیکربندی نامعتبر است. لطفاً تنظیمات خود را بررسی کنید.", + "issues": { + "title": "اعتبارسنجی جریان", + "videoCodecGood": "کدک ویدیو {{codec}} است.", + "audioCodecGood": "کدک صدا {{codec}} است.", + "resolutionHigh": "وضوح {{resolution}} ممکن است باعث افزایش مصرف منابع شود.", + "resolutionLow": "وضوح {{resolution}} ممکن است برای تشخیص قابل‌اعتماد اشیای کوچک بیش از حد پایین باشد.", + "noAudioWarning": "برای این جریان صدایی شناسایی نشد؛ ضبط‌ها صدا نخواهند داشت.", + "audioCodecRecordError": "برای پشتیبانی از صدا در ضبط‌ها، کدک صوتی AAC لازم است.", + "audioCodecRequired": "برای پشتیبانی از تشخیص صدا، یک جریان صوتی لازم است.", + "restreamingWarning": "کاهش تعداد اتصال‌ها به دوربین برای جریان ضبط ممکن است کمی مصرف CPU را افزایش دهد.", + "brands": { + "reolink-rtsp": "RTSP در Reolink توصیه نمی‌شود. در تنظیمات میان‌افزار دوربین، HTTP را فعال کنید و جادوگر را دوباره اجرا کنید.", + "reolink-http": "جریان‌های HTTP در Reolink برای سازگاری بهتر باید از FFmpeg استفاده کنند. برای این جریان، «استفاده از حالت سازگاری جریان» را فعال کنید." + }, + "dahua": { + "substreamWarning": "زیرجریان ۱ روی وضوح پایین قفل شده است. بسیاری از دوربین‌های Dahua / Amcrest / EmpireTech از زیرجریان‌های اضافی پشتیبانی می‌کنند که باید در تنظیمات دوربین فعال شوند. توصیه می‌شود در صورت وجود، آن جریان‌ها را بررسی کرده و استفاده کنید." + }, + "hikvision": { + "substreamWarning": "زیرجریان ۱ روی وضوح پایین قفل شده است. بسیاری از دوربین‌های Hikvision از زیرجریان‌های اضافی پشتیبانی می‌کنند که باید در تنظیمات دوربین فعال شوند. توصیه می‌شود در صورت وجود، آن جریان‌ها را بررسی کرده و استفاده کنید." + } + }, + "connecting": "در حال اتصال...", + "description": "پیش از ذخیره کردن دوربین جدیدتان، اعتبارسنجی و تحلیل نهایی انجام می‌شود. پیش از ذخیره، هر استریم را متصل کنید." + } + }, + "cameraManagement": { + "title": "مدیریت دوربین‌ها", + "addCamera": "افزودن دوربین جدید", + "selectCamera": "یک دوربین را انتخاب کنید", + "backToSettings": "بازگشت به تنظیمات دوربین", + "streams": { + "title": "فعال‌سازی / غیرفعال‌سازی دوربین‌ها", + "desc": "یک دوربین را تا زمانی که Frigate دوباره راه‌اندازی شود، موقتاً غیرفعال کنید. غیرفعال‌کردن یک دوربین باعث می‌شود پردازش جریان‌های این دوربین توسط Frigate کاملاً متوقف شود. تشخیص، ضبط و اشکال‌زدایی در دسترس نخواهد بود.
    نکته: این کار بازپخش‌های go2rtc را غیرفعال نمی‌کند." + }, + "cameraConfig": { + "add": "افزودن دوربین", + "edit": "ویرایش دوربین", + "description": "تنظیمات دوربین از جمله ورودی‌های جریان و نقش‌ها را پیکربندی کنید.", + "name": "نام دوربین", + "nameLength": "نام دوربین باید کمتر از ۶۴ کاراکتر باشد.", + "nameRequired": "نام دوربین الزامی است", + "namePlaceholder": "مثلاً front_door یا Back Yard Overview", + "enabled": "فعال", + "ffmpeg": { + "inputs": "جریان‌های ورودی", + "path": "مسیر جریان", + "pathRequired": "مسیر جریان الزامی است", + "pathPlaceholder": "rtsp://...", + "roles": "نقش‌ها", + "rolesRequired": "حداقل یک نقش لازم است", + "rolesUnique": "هر نقش (audio، detect، record) فقط می‌تواند به یک جریان اختصاص داده شود", + "addInput": "افزودن جریان ورودی", + "removeInput": "حذف جریان ورودی", + "inputsRequired": "حداقل یک جریان ورودی لازم است" + }, + "go2rtcStreams": "جریان‌های go2rtc", + "streamUrls": "نشانی‌های جریان", + "addGo2rtcStream": "افزودن جریان go2rtc", + "toast": { + "success": "دوربین {{cameraName}} با موفقیت ذخیره شد" + }, + "addUrl": "افزودن نشانی" + }, + "editCamera": "ویرایش دوربین:" + }, + "cameraReview": { + "title": "تنظیمات بازبینی دوربین", + "object_descriptions": { + "title": "توضیحات شیء با هوش مصنوعی مولد", + "desc": "موقتاً توضیحات اشیای هوش مصنوعی مولد را برای این دوربین فعال/غیرفعال کنید. وقتی غیرفعال باشد، برای اشیای ردیابی‌شده در این دوربین، توضیحات تولیدشده با هوش مصنوعی درخواست نخواهد شد." + }, + "reviewClassification": { + "title": "طبقه‌بندی بازبینی", + "desc": "Frigate موارد بازبینی را به‌عنوان اعلان‌ها و تشخیص‌ها دسته‌بندی می‌کند. به‌طور پیش‌فرض، همهٔ اشیای person و car به‌عنوان اعلان در نظر گرفته می‌شوند. می‌توانید با پیکربندی نواحی لازم برای آن‌ها، طبقه‌بندی موارد بازبینی خود را دقیق‌تر کنید.", + "noDefinedZones": "هیچ ناحیه‌ای برای این دوربین تعریف نشده است.", + "objectAlertsTips": "همهٔ اشیای {{alertsLabels}} در {{cameraName}} به‌صورت اعلان نمایش داده می‌شوند.", + "zoneObjectAlertsTips": "همهٔ اشیای {{alertsLabels}} که در {{zone}} روی {{cameraName}} تشخیص داده می‌شوند، به‌صورت اعلان نمایش داده خواهند شد.", + "selectAlertsZones": "ناحیه‌ها را برای اعلان‌ها انتخاب کنید", + "selectDetectionsZones": "ناحیه‌ها را برای تشخیص‌ها انتخاب کنید", + "limitDetections": "تشخیص‌ها را به نواحی مشخص محدود کنید", + "toast": { + "success": "پیکربندی طبقه‌بندی بازبینی ذخیره شد. برای اعمال تغییرات، Frigate را راه‌اندازی مجدد کنید." + }, + "objectDetectionsTips": "همهٔ اشیای {{detectionsLabels}} که در {{cameraName}} دسته‌بندی نشده‌اند، صرف‌نظر از اینکه در کدام ناحیه هستند، به‌صورت «تشخیص‌ها» نمایش داده می‌شوند.", + "zoneObjectDetectionsTips": { + "text": "همهٔ اشیای {{detectionsLabels}} که در {{zone}} برای {{cameraName}} دسته‌بندی نشده‌اند، به‌صورت «تشخیص‌ها» نمایش داده می‌شوند.", + "notSelectDetections": "همهٔ اشیای {{detectionsLabels}} که در {{zone}} روی {{cameraName}} شناسایی شده‌اند و به‌عنوان «هشدار» دسته‌بندی نشده‌اند، صرف‌نظر از اینکه در کدام ناحیه هستند، به‌صورت «تشخیص‌ها» نمایش داده می‌شوند.", + "regardlessOfZoneObjectDetectionsTips": "همهٔ اشیای {{detectionsLabels}} که در {{cameraName}} دسته‌بندی نشده‌اند، بدون توجه به این‌که در کدام ناحیه هستند، به‌صورت «تشخیص‌ها» نمایش داده خواهند شد." + }, + "unsavedChanges": "تنظیمات ذخیره‌نشدهٔ طبقه‌بندی بازبینی برای {{camera}}" + }, + "review_descriptions": { + "title": "توضیحات بازبینیِ هوش مصنوعی مولد", + "desc": "توضیحات بازبینیِ هوش مصنوعی مولد را برای این دوربین به‌طور موقت فعال/غیرفعال کنید. وقتی غیرفعال باشد، برای موارد بازبینی این دوربین، توضیحات تولیدشده توسط هوش مصنوعی درخواست نخواهد شد." + }, + "review": { + "title": "بازبینی", + "desc": "هشدارها و تشخیص‌ها را برای این دوربین تا زمان راه‌اندازی مجدد Frigate به‌طور موقت فعال/غیرفعال کنید. وقتی غیرفعال باشد، هیچ مورد بازبینی جدیدی ایجاد نخواهد شد. ", + "alerts": "هشدارها ", + "detections": "تشخیص‌ها " + } + }, + "masksAndZones": { + "filter": { + "all": "همهٔ ماسک‌ها و ناحیه‌ها" + }, + "form": { + "zoneName": { + "error": { + "mustNotBeSameWithCamera": "نام ناحیه نباید با نام دوربین یکسان باشد.", + "alreadyExists": "ناحیه‌ای با این نام از قبل برای این دوربین وجود دارد.", + "mustNotContainPeriod": "نام ناحیه نباید شامل نقطه باشد.", + "hasIllegalCharacter": "نام ناحیه شامل نویسه‌های غیرمجاز است.", + "mustHaveAtLeastOneLetter": "نام ناحیه باید حداقل یک حرف داشته باشد.", + "mustBeAtLeastTwoCharacters": "نام ناحیه باید حداقل ۲ کاراکتر باشد." + } + }, + "distance": { + "error": { + "text": "فاصله باید بزرگ‌تر یا مساوی 0.1 باشد.", + "mustBeFilled": "همهٔ فیلدهای فاصله باید پر شوند تا بتوان از تخمین سرعت استفاده کرد." + } + }, + "polygonDrawing": { + "reset": { + "label": "پاک کردن همهٔ نقاط" + }, + "snapPoints": { + "true": "چسباندن به نقاط", + "false": "چسباندن به نقاط انجام نشود" + }, + "delete": { + "title": "تأیید حذف", + "desc": "آیا مطمئن هستید که می‌خواهید {{type}} {{name}} را حذف کنید؟", + "success": "{{name}} حذف شد." + }, + "removeLastPoint": "حذف آخرین نقطه", + "error": { + "mustBeFinished": "رسم چندضلعی باید قبل از ذخیره کامل شود." + } + }, + "inertia": { + "error": { + "mustBeAboveZero": "لختی باید بیشتر از ۰ باشد." + } + }, + "loiteringTime": { + "error": { + "mustBeGreaterOrEqualZero": "زمان توقف باید بیشتر از یا مساوی ۰ باشد." + } + }, + "speed": { + "error": { + "mustBeGreaterOrEqualTo": "آستانهٔ سرعت باید بیشتر از یا مساوی ۰.۱ باشد." + } + } + }, + "zones": { + "add": "افزودن ناحیه", + "edit": "ویرایش ناحیه", + "point_one": "{{count}} نقطه", + "point_other": "{{count}} نقطه", + "clickDrawPolygon": "برای رسم یک چندضلعی روی تصویر کلیک کنید.", + "loiteringTime": { + "desc": "یک حداقل زمان (به ثانیه) تعیین می‌کند که شیء باید در ناحیه باشد تا فعال شود. پیش‌فرض: 0 ", + "title": "زمان توقف" + }, + "objects": { + "title": "اشیا", + "desc": "فهرست اشیایی که برای این ناحیه اعمال می‌شوند." + }, + "allObjects": "همهٔ اشیا", + "speedEstimation": { + "title": "تخمین سرعت", + "desc": "فعال‌سازی تخمین سرعت برای اشیا در این ناحیه. ناحیه باید دقیقاً ۴ نقطه داشته باشد.", + "lineADistance": "فاصلهٔ خط A ( {{unit}})", + "lineBDistance": "فاصلهٔ خط B ( {{unit}})", + "lineCDistance": "فاصلهٔ خط C ( {{unit}})", + "lineDDistance": "فاصلهٔ خط D ( {{unit}})" + }, + "speedThreshold": { + "title": "آستانهٔ سرعت ( {{unit}})", + "desc": "حداقل سرعتی را مشخص می‌کند تا اشیا در این ناحیه در نظر گرفته شوند.", + "toast": { + "error": { + "pointLengthError": "تخمین سرعت برای این ناحیه غیرفعال شد. ناحیه‌هایی که تخمین سرعت دارند باید دقیقاً ۴ نقطه داشته باشند.", + "loiteringTimeError": "ناحیه‌هایی با زمان پرسه‌زنیِ بیشتر از ۰ نباید با تخمین سرعت استفاده شوند." + } + } + }, + "toast": { + "success": "ناحیه ( {{zoneName}}) ذخیره شد." + }, + "label": "ناحیه‌ها", + "documentTitle": "ویرایش ناحیه - Frigate", + "desc": { + "title": "ناحیه‌ها به شما امکان تعریف یک ناحیهٔ مشخص از فریم را می‌دهند تا بتوانید تعیین کنید که آیا یک شیء در یک ناحیهٔ خاص قرار دارد یا خیر.", + "documentation": "مستندات" + }, + "name": { + "title": "نام", + "inputPlaceHolder": "یک نام وارد کنید…", + "tips": "نام باید حداقل ۲ کاراکتر باشد، باید حداقل یک حرف داشته باشد، و نباید نام یک دوربین یا ناحیهٔ دیگری در این دوربین باشد." + }, + "inertia": { + "title": "لختی", + "desc": "تعداد فریم‌هایی را مشخص می‌کند که یک شیء باید در یک ناحیه باشد تا در آن ناحیه محسوب شود. پیش‌فرض: ۳" + } + }, + "motionMasks": { + "label": "ماسک حرکت", + "context": { + "title": "ماسک‌های حرکت برای جلوگیری از این‌که انواع ناخواستهٔ حرکت باعث فعال‌شدن تشخیص شوند استفاده می‌شوند (مثلاً شاخه‌های درخت، مهر زمانیِ دوربین). ماسک‌های حرکت باید با نهایت صرفه‌جویی استفاده شوند؛ ماسک‌گذاریِ بیش‌ازحد باعث می‌شود ردیابی اشیا دشوارتر شود." + }, + "point_one": "{{count}} نقطه", + "point_other": "{{count}} نقطه", + "clickDrawPolygon": "برای رسم یک چندضلعی روی تصویر کلیک کنید.", + "polygonAreaTooLarge": { + "title": "ماسک حرکت {{polygonArea}}٪ از قاب دوربین را پوشش می‌دهد. ماسک‌های حرکتِ بزرگ توصیه نمی‌شوند.", + "tips": "ماسک‌های حرکت مانعِ تشخیص اشیا نمی‌شوند. به‌جای آن باید از «ناحیهٔ الزامی» استفاده کنید." + }, + "add": "ماسک حرکت جدید", + "edit": "ویرایش ماسک حرکت", + "toast": { + "success": { + "title": "{{polygonName}} ذخیره شد.", + "noName": "ماسک حرکت ذخیره شد." + } + }, + "documentTitle": "ویرایش ماسک حرکت - Frigate", + "desc": { + "title": "ماسک‌های حرکت برای جلوگیری از فعال‌سازی تشخیص توسط انواع ناخواستهٔ حرکت استفاده می‌شوند. ماسک‌گذاری بیش‌ازحد ردیابی اشیا را دشوارتر می‌کند.", + "documentation": "مستندات" + } + }, + "objectMasks": { + "desc": { + "documentation": "مستندات", + "title": "ماسک‌های فیلترِ اشیا برای فیلتر کردن مثبت‌های کاذبِ یک نوع شیء مشخص بر اساس موقعیت استفاده می‌شوند." + }, + "add": "افزودن ماسک شیء", + "edit": "ویرایش ماسک شیء", + "context": "ماسک‌های فیلترِ شیء برای فیلتر کردن مثبت‌های کاذب برای یک نوع شیء مشخص بر اساس موقعیت استفاده می‌شوند.", + "point_one": "{{count}} نقطه", + "point_other": "{{count}} نقطه", + "clickDrawPolygon": "برای رسم یک چندضلعی روی تصویر کلیک کنید.", + "toast": { + "success": { + "noName": "ماسک شیء ذخیره شد.", + "title": "{{polygonName}} ذخیره شد." + } + }, + "label": "ماسک‌های شیء", + "documentTitle": "ویرایش ماسک شیء - Frigate", + "objects": { + "title": "اشیا", + "desc": "نوع شیئی که به این ماسک شیء مربوط می‌شود.", + "allObjectTypes": "همهٔ انواع شیء" + } + }, + "restart_required": "نیاز به راه‌اندازی مجدد (ماسک‌ها/ناحیه‌ها تغییر کرده‌اند)", + "toast": { + "success": { + "copyCoordinates": "مختصات {{polyName}} در کلیپ‌بورد کپی شد." + }, + "error": { + "copyCoordinatesFailed": "امکان کپی کردن مختصات در کلیپ‌بورد نبود." + } + }, + "motionMaskLabel": "ماسک حرکت {{number}}", + "objectMaskLabel": "ماسک شیء {{number}} ( {{label}})" + }, + "motionDetectionTuner": { + "title": "تنظیم‌گر تشخیص حرکت", + "unsavedChanges": "تغییرات ذخیره‌نشدهٔ تنظیم‌گر تشخیص حرکت ( {{camera}})", + "desc": { + "title": "Frigate از تشخیص حرکت به‌عنوان نخستین بررسی استفاده می‌کند تا ببیند آیا در قاب چیزی رخ می‌دهد که ارزش بررسی با تشخیص شیء را داشته باشد یا نه.", + "documentation": "راهنمای تنظیم تشخیص حرکت را بخوانید" + }, + "improveContrast": { + "desc": "بهبود کنتراست برای صحنه‌های تاریک‌تر. پیش‌فرض: روشن ", + "title": "بهبود کنتراست" + }, + "toast": { + "success": "تنظیمات حرکت ذخیره شد." + }, + "Threshold": { + "title": "آستانه", + "desc": "مقدار آستانه تعیین می‌کند برای اینکه تغییر روشناییِ یک پیکسل «حرکت» محسوب شود، چه میزان تغییر لازم است. پیش‌فرض: 30" + }, + "contourArea": { + "title": "مساحت کانتور", + "desc": "مقدار مساحت کانتور برای تعیین اینکه کدام گروه‌های پیکسل‌های تغییر‌یافته به‌عنوان حرکت محسوب می‌شوند استفاده می‌شود. پیش‌فرض: ۱۰" + } + }, + "debug": { + "title": "اشکال‌زدایی", + "detectorDesc": "Frigate از آشکارسازهای شما ( {{detectors}}) برای تشخیص اشیا در جریان ویدیوی دوربین شما استفاده می‌کند.", + "desc": "نمای اشکال‌زدایی، نمایی بلادرنگ از اشیای ردیابی‌شده و آمار آن‌ها را نشان می‌دهد. فهرست اشیا یک خلاصهٔ با تأخیر زمانی از اشیای تشخیص‌داده‌شده را نمایش می‌دهد.", + "audio": { + "score": "امتیاز", + "currentRMS": "RMS فعلی", + "currentdbFS": "dbFS فعلی", + "title": "صدا", + "noAudioDetections": "هیچ تشخیص صدایی وجود ندارد" + }, + "boundingBoxes": { + "title": "کادرهای محدوده", + "desc": "نمایش جعبه‌های مرزی دور اشیای ردیابی‌شده", + "colors": { + "label": "رنگ‌های جعبهٔ مرزی شیء", + "info": "
  • در زمان راه‌اندازی، رنگ‌های مختلف به هر برچسب شیء اختصاص داده می‌شود
  • یک خط نازک آبی تیره نشان می‌دهد که شیء در این لحظه تشخیص داده نشده است
  • یک خط نازک خاکستری نشان می‌دهد که شیء به‌عنوان ساکن تشخیص داده شده است
  • یک خط ضخیم نشان می‌دهد که شیء موضوع ردیابی خودکار است (وقتی فعال باشد)
  • " + } + }, + "zones": { + "desc": "یک طرح کلی از هر ناحیهٔ تعریف‌شده را نمایش می‌دهد", + "title": "ناحیه‌ها" + }, + "mask": { + "title": "ماسک‌های حرکت", + "desc": "چندضلعی‌های ماسک حرکت را نشان می‌دهد" + }, + "motion": { + "title": "کادرهای حرکت", + "desc": "کادرهایی را پیرامون نواحی‌ای که در آن‌ها حرکت تشخیص داده می‌شود نشان می‌دهد", + "tips": "

    جعبه‌های حرکت


    جعبه‌های قرمز روی نواحی فریمی که در حال حاضر حرکت در آن‌ها تشخیص داده می‌شود نمایش داده می‌شوند

    " + }, + "paths": { + "desc": "نقاط مهم مسیر شیء ردیابی‌شده را نشان می‌دهد", + "tips": "

    مسیرها


    خط‌ها و دایره‌ها نقاط مهمی را که شیء ردیابی‌شده در طول چرخهٔ عمر خود طی کرده است نشان می‌دهند.

    ", + "title": "مسیرها" + }, + "objectShapeFilterDrawing": { + "title": "رسم فیلتر شکل شیء", + "desc": "برای مشاهدهٔ جزئیات مساحت و نسبت، روی تصویر یک مستطیل رسم کنید", + "tips": "این گزینه را فعال کنید تا بتوانید روی تصویر دوربین یک مستطیل رسم کنید و مساحت و نسبت آن را ببینید. سپس می‌توان از این مقادیر برای تنظیم پارامترهای فیلتر شکل شیء در پیکربندی شما استفاده کرد.", + "score": "امتیاز", + "ratio": "نسبت", + "area": "مساحت" + }, + "openCameraWebUI": "رابط وبِ {{camera}} را باز کنید", + "debugging": "انجام اشکال‌زدایی", + "objectList": "فهرست اشیا", + "noObjects": "هیچ شیئی وجود ندارد", + "timestamp": { + "title": "مهر زمان", + "desc": "نمایش مهر زمان روی تصویر" + }, + "regions": { + "title": "مناطق", + "desc": "نمایش جعبهٔ ناحیهٔ مورد علاقهٔ ارسال‌شده به تشخیص‌دهندهٔ شیء", + "tips": "

    جعبه‌های ناحیه


    جعبه‌های سبز روشن روی نواحی مورد علاقه در فریم که به تشخیص‌دهندهٔ شیء ارسال می‌شوند نمایش داده می‌شوند.

    " + } + }, + "users": { + "management": { + "desc": "حساب‌های کاربری این نمونهٔ Frigate را مدیریت کنید.", + "title": "مدیریت کاربران" + }, + "addUser": "افزودن کاربر", + "updatePassword": "بازنشانی گذرواژه", + "toast": { + "success": { + "createUser": "کاربر {{user}} با موفقیت ایجاد شد", + "deleteUser": "کاربر {{user}} با موفقیت حذف شد", + "updatePassword": "گذرواژه با موفقیت به‌روزرسانی شد.", + "roleUpdated": "نقش برای {{user}} به‌روزرسانی شد" + }, + "error": { + "setPasswordFailed": "ذخیرهٔ گذرواژه ناموفق بود: {{errorMessage}}", + "createUserFailed": "ایجاد کاربر ناموفق بود: {{errorMessage}}", + "deleteUserFailed": "حذف کاربر ناموفق بود: {{errorMessage}}", + "roleUpdateFailed": "به‌روزرسانی نقش ناموفق بود: {{errorMessage}}" + } + }, + "table": { + "changeRole": "تغییر نقش کاربر", + "password": "بازنشانی گذرواژه", + "deleteUser": "حذف کاربر", + "username": "نام کاربری", + "actions": "اقدامات", + "role": "نقش", + "noUsers": "هیچ کاربری یافت نشد." + }, + "dialog": { + "form": { + "user": { + "title": "نام کاربری", + "desc": "فقط حروف، اعداد، نقطه و زیرخط مجاز هستند.", + "placeholder": "نام کاربری را وارد کنید" + }, + "password": { + "confirm": { + "title": "تأیید گذرواژه", + "placeholder": "تأیید گذرواژه" + }, + "strength": { + "title": "قدرت گذرواژه: · ", + "weak": "ضعیف", + "medium": "متوسط", + "strong": "قوی", + "veryStrong": "خیلی قوی" + }, + "requirements": { + "digit": "حداقل یک رقم", + "special": "حداقل یک نویسهٔ ویژه (!@#$%^&*(),.?\":{}|<>)", + "title": "الزامات رمز عبور:", + "length": "حداقل ۸ کاراکتر", + "uppercase": "حداقل یک حرف بزرگ" + }, + "match": "گذرواژه‌ها مطابقت دارند", + "notMatch": "گذرواژه‌ها مطابقت ندارند", + "show": "نمایش رمز عبور", + "hide": "پنهان کردن رمز عبور", + "title": "رمز عبور", + "placeholder": "رمز عبور را وارد کنید" + }, + "newPassword": { + "title": "گذرواژهٔ جدید", + "confirm": { + "placeholder": "رمز عبور جدید را دوباره وارد کنید" + }, + "placeholder": "رمز عبور جدید را وارد کنید" + }, + "passwordIsRequired": "گذرواژه الزامی است", + "currentPassword": { + "title": "رمز عبور فعلی", + "placeholder": "رمز عبور فعلی خود را وارد کنید" + }, + "usernameIsRequired": "نام کاربری الزامی است" + }, + "createUser": { + "title": "ایجاد کاربر جدید", + "desc": "یک حساب کاربری جدید اضافه کنید و یک نقش برای دسترسی به بخش‌های رابط کاربری Frigate تعیین کنید.", + "usernameOnlyInclude": "نام کاربری فقط می‌تواند شامل حروف، اعداد، . یا _ باشد", + "confirmPassword": "لطفاً گذرواژهٔ خود را تأیید کنید" + }, + "passwordSetting": { + "currentPasswordRequired": "گذرواژهٔ فعلی الزامی است", + "incorrectCurrentPassword": "گذرواژهٔ فعلی نادرست است", + "passwordVerificationFailed": "اعتبارسنجی گذرواژه ناموفق بود", + "updatePassword": "به‌روزرسانی گذرواژه برای {{username}}", + "setPassword": "تنظیم گذرواژه", + "desc": "برای ایمن‌سازی این حساب، یک گذرواژهٔ قوی بسازید.", + "doNotMatch": "رمزهای عبور مطابقت ندارند", + "multiDeviceWarning": "هر دستگاه دیگری که در آن وارد شده‌اید باید ظرف {{refresh_time}} دوباره وارد شود.", + "multiDeviceAdmin": "همچنین می‌توانید با چرخش رمز JWT خود، همهٔ کاربران را فوراً مجبور به احراز هویت مجدد کنید.", + "cannotBeEmpty": "رمز عبور نمی‌تواند خالی باشد" + }, + "changeRole": { + "desc": "به‌روزرسانی مجوزها برای {{username}} ", + "roleInfo": { + "intro": "نقش مناسب برای این کاربر را انتخاب کنید:", + "admin": "مدیر", + "adminDesc": "دسترسی کامل به همهٔ قابلیت‌ها.", + "viewer": "بیننده", + "customDesc": "نقش سفارشی با دسترسی مشخص به دوربین.", + "viewerDesc": "محدود به داشبوردهای زنده، بررسی، کاوش و خروجی‌گیری فقط." + }, + "title": "تغییر نقش کاربر", + "select": "یک نقش انتخاب کنید" + }, + "deleteUser": { + "title": "حذف کاربر", + "desc": "این عمل قابل بازگشت نیست. این کار حساب کاربری را به‌طور دائم حذف می‌کند و همهٔ داده‌های مرتبط را حذف می‌کند.", + "warn": "آیا مطمئن هستید که می‌خواهید {{username}} را حذف کنید؟" + } + }, + "title": "کاربران" + }, + "roles": { + "table": { + "role": "نقش", + "cameras": "دوربین‌ها", + "actions": "اقدام‌ها", + "noRoles": "هیچ نقش سفارشی‌ای یافت نشد.", + "editCameras": "ویرایش دوربین‌ها", + "deleteRole": "حذف نقش" + }, + "toast": { + "success": { + "createRole": "نقش {{role}} با موفقیت ایجاد شد", + "updateCameras": "دوربین‌ها برای نقش {{role}} به‌روزرسانی شدند", + "deleteRole": "نقش {{role}} با موفقیت حذف شد", + "userRolesUpdated_one": "{{count}} کاربری که به این نقش اختصاص داده شده بود به «بیننده» تغییر یافت و اکنون به همهٔ دوربین‌ها دسترسی دارد.", + "userRolesUpdated_other": "{{count}} کاربری که به این نقش اختصاص داده شده بودند به «بیننده» تغییر یافتند و اکنون به همهٔ دوربین‌ها دسترسی دارند." + }, + "error": { + "createRoleFailed": "ایجاد نقش ناموفق بود: {{errorMessage}}", + "updateCamerasFailed": "به‌روزرسانی دوربین‌ها ناموفق بود: {{errorMessage}}", + "deleteRoleFailed": "حذف نقش ناموفق بود: {{errorMessage}}", + "userUpdateFailed": "به‌روزرسانی نقش‌های کاربر ناموفق بود: {{errorMessage}}" + } + }, + "dialog": { + "createRole": { + "title": "ایجاد نقش جدید", + "desc": "یک نقش جدید اضافه کنید و سطح دسترسی به دوربین‌ها را تعیین کنید." + }, + "form": { + "role": { + "roleExists": "نقشی با این نام از قبل وجود دارد.", + "placeholder": "نام نقش را وارد کنید", + "desc": "فقط حروف، اعداد، نقطه و زیرخط مجاز است.", + "roleIsRequired": "نام نقش الزامی است", + "roleOnlyInclude": "نام نقش فقط می‌تواند شامل حروف، اعداد، . یا _ باشد", + "title": "نام نقش" + }, + "cameras": { + "title": "دوربین‌ها", + "desc": "دوربین‌هایی را که این نقش به آن‌ها دسترسی دارد انتخاب کنید. حداقل یک دوربین لازم است.", + "required": "حداقل باید یک دوربین انتخاب شود." + } + }, + "editCameras": { + "title": "ویرایش دوربین‌های نقش", + "desc": "به‌روزرسانی دسترسی به دوربین برای نقش {{role}} ." + }, + "deleteRole": { + "title": "حذف نقش", + "desc": "این عمل قابل بازگشت نیست. این کار نقش را به‌طور دائم حذف می‌کند و همهٔ کاربرانی که این نقش را دارند به نقش 'بیننده' اختصاص می‌دهد که دسترسی بیننده به همهٔ دوربین‌ها را می‌دهد.", + "warn": "آیا مطمئن هستید که می‌خواهید {{role}} را حذف کنید؟", + "deleting": "در حال حذف…" + } + }, + "management": { + "title": "مدیریت نقش بیننده", + "desc": "مدیریت نقش‌های بینندهٔ سفارشی و مجوزهای دسترسی به دوربین آن‌ها برای این نمونهٔ Frigate." + }, + "addRole": "افزودن نقش" + }, + "notification": { + "title": "اعلان‌ها", + "notificationSettings": { + "title": "تنظیمات اعلان‌ها", + "desc": "Frigate می‌تواند به‌صورت بومی وقتی در مرورگر اجرا می‌شود یا به‌عنوان PWA نصب شده است، اعلان‌های پوش را به دستگاه شما ارسال کند." + }, + "notificationUnavailable": { + "title": "اعلان‌ها در دسترس نیستند", + "desc": "اعلان‌های پوش وب نیاز به یک بستر امن دارند ( https://… ). این محدودیت مرورگر است. برای استفاده از اعلان‌ها، به‌صورت امن به Frigate دسترسی پیدا کنید." + }, + "globalSettings": { + "title": "تنظیمات عمومی", + "desc": "به‌طور موقت اعلان‌ها را برای دوربین‌های مشخص در همهٔ دستگاه‌های ثبت‌شده متوقف کنید." + }, + "sendTestNotification": "ارسال اعلان آزمایشی", + "unsavedRegistrations": "ثبت‌نام‌های اعلان ذخیره‌نشده", + "unsavedChanges": "تغییرات اعلان ذخیره‌نشده", + "active": "اعلان‌ها فعال هستند", + "suspended": "اعلان‌ها تعلیق شده‌اند {{time}}", + "suspendTime": { + "suspend": "تعلیق", + "5minutes": "تعلیق به مدت ۵ دقیقه", + "10minutes": "تعلیق به مدت ۱۰ دقیقه", + "30minutes": "تعلیق به مدت ۳۰ دقیقه", + "1hour": "تعلیق به مدت ۱ ساعت", + "24hours": "متوقف کردن به مدت ۲۴ ساعت", + "untilRestart": "متوقف کردن تا راه‌اندازی مجدد", + "12hours": "متوقف کردن به مدت ۱۲ ساعت" + }, + "email": { + "title": "ایمیل", + "placeholder": "مثلاً example@email.com", + "desc": "یک ایمیل معتبر الزامی است و در صورت بروز مشکل در سرویس push برای اطلاع‌رسانی به شما استفاده می‌شود." + }, + "cameras": { + "title": "دوربین‌ها", + "noCameras": "هیچ دوربینی در دسترس نیست", + "desc": "انتخاب کنید که برای کدام دوربین‌ها اعلان فعال شود." + }, + "cancelSuspension": "لغو توقف", + "toast": { + "success": { + "registered": "با موفقیت برای اعلان‌ها ثبت شد. راه‌اندازی مجدد Frigate قبل از ارسال هر اعلانی (از جمله اعلان آزمایشی) الزامی است.", + "settingSaved": "تنظیمات اعلان ذخیره شد." + }, + "error": { + "registerFailed": "ذخیرهٔ ثبت‌نام اعلان ناموفق بود." + } + }, + "deviceSpecific": "تنظیمات خاص دستگاه", + "registerDevice": "ثبت این دستگاه", + "unregisterDevice": "لغو ثبت این دستگاه" + }, + "frigatePlus": { + "apiKey": { + "notValidated": "کلید API ‏Frigate+ شناسایی نشده یا معتبرسازی نشده است", + "desc": "کلید API ‏Frigate+ امکان یکپارچه‌سازی با سرویس Frigate+ را فراهم می‌کند.", + "plusLink": "دربارهٔ Frigate+ بیشتر بخوانید", + "title": "کلید API فرigate+", + "validated": "کلید API فرigate+ شناسایی و تأیید شد" + }, + "snapshotConfig": { + "title": "پیکربندی عکس فوری", + "desc": "ارسال به Frigate+ نیازمند فعال بودنِ هم «عکس‌های فوری» و هم عکس‌های فوریِ clean_copy در پیکربندی شماست.", + "cleanCopyWarning": "برای برخی دوربین‌ها عکس فوری فعال است اما clean copy غیرفعال است. برای این‌که بتوانید تصاویر این دوربین‌ها را به Frigate+ ارسال کنید، باید clean_copy را در پیکربندی عکس فوری خود فعال کنید.", + "table": { + "camera": "دوربین", + "snapshots": "عکس‌های فوری", + "cleanCopySnapshots": "عکس‌های فوریِ clean_copy " + } + }, + "modelInfo": { + "title": "اطلاعات مدل", + "loadingAvailableModels": "در حال بارگذاری مدل‌های موجود…", + "modelSelect": "مدل‌های موجود شما در Frigate+ را می‌توان از اینجا انتخاب کرد. توجه داشته باشید که فقط مدل‌های سازگار با پیکربندی فعلی آشکارساز شما قابل انتخاب هستند.", + "modelType": "نوع مدل", + "cameras": "دوربین‌ها", + "loading": "در حال بارگذاری اطلاعات مدل…", + "error": "بارگذاری اطلاعات مدل ناموفق بود", + "availableModels": "مدل‌های موجود", + "trainDate": "تاریخ آموزش", + "baseModel": "مدل پایه", + "plusModelType": { + "baseModel": "مدل پایه", + "userModel": "بهینه‌شده" + }, + "supportedDetectors": "تشخیص‌دهنده‌های پشتیبانی‌شده" + }, + "unsavedChanges": "تغییرات تنظیمات Frigate+ ذخیره‌نشده", + "restart_required": "نیاز به راه‌اندازی مجدد (مدل Frigate+ تغییر کرد)", + "toast": { + "success": "تنظیمات Frigate+ ذخیره شد. برای اعمال تغییرات، Frigate را راه‌اندازی مجدد کنید.", + "error": "ذخیرهٔ تغییرات پیکربندی ناموفق بود: {{errorMessage}}" + }, + "title": "تنظیمات Frigate+" + }, + "triggers": { + "documentTitle": "تریگرها", + "semanticSearch": { + "title": "جستجوی معنایی غیرفعال است", + "desc": "برای استفاده از تریگرها باید جستجوی معنایی فعال باشد." + }, + "management": { + "title": "تریگرها", + "desc": "مدیریت محرک‌ها برای {{camera}}. از نوع بندانگشتی برای فعال‌سازی روی بندانگشتی‌های مشابه به شیء ردیابی‌شدهٔ انتخابی‌تان استفاده کنید، و از نوع توضیحات برای فعال‌سازی روی توضیحات مشابه به متنی که مشخص می‌کنید." + }, + "table": { + "lastTriggered": "آخرین بار فعال‌شده", + "noTriggers": "هیچ محرکی برای این دوربین پیکربندی نشده است.", + "edit": "ویرایش", + "deleteTrigger": "حذف محرک", + "name": "نام", + "type": "نوع", + "content": "محتوا", + "threshold": "آستانه", + "actions": "اقدامات" + }, + "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": "فقط ۱۰۰ بندانگشتیِ آخر نمایش داده می‌شوند. اگر بندانگشتیِ موردنظر خود را پیدا نمی‌کنید، لطفاً اشیای قدیمی‌تر را در Explore مرور کنید و از همان‌جا از منو یک تریگر تنظیم کنید.", + "textDesc": "متنی وارد کنید تا وقتی توضیحی مشابهِ شیء ردیابی‌شده تشخیص داده شد، این اقدام تریگر شود.", + "error": { + "required": "محتوا الزامی است." + } + }, + "threshold": { + "title": "آستانه", + "desc": "آستانهٔ شباهت را برای این تریگر تعیین کنید. آستانهٔ بالاتر یعنی برای فعال شدن تریگر، تطابق نزدیک‌تری لازم است.", + "error": { + "min": "آستانه باید حداقل ۰ باشد", + "max": "آستانه باید حداکثر ۱ باشد" + } + }, + "actions": { + "title": "اقدام‌ها", + "desc": "به‌طور پیش‌فرض، Frigate برای همهٔ تریگرها یک پیام MQTT ارسال می‌کند. زیر‌برچسب‌ها نام تریگر را به برچسب شیء اضافه می‌کنند. ویژگی‌ها فراداده‌های قابل جستجو هستند که جداگانه در فرادادهٔ شیء ردیابی‌شده ذخیره می‌شوند.", + "error": { + "min": "حداقل باید یک اقدام انتخاب شود." + } + } + } + }, + "wizard": { + "title": "ایجاد تریگر", + "step1": { + "description": "تنظیمات پایهٔ تریگر خود را پیکربندی کنید." + }, + "step2": { + "description": "محتوایی را که این اقدام را فعال می‌کند تنظیم کنید." + }, + "step3": { + "description": "آستانه و اقدام‌های این تریگر را پیکربندی کنید." + }, + "steps": { + "nameAndType": "نام و نوع", + "configureData": "پیکربندی داده‌ها", + "thresholdAndActions": "آستانه و اقدام‌ها" + } + }, + "toast": { + "success": { + "createTrigger": "تریگر {{name}} با موفقیت ایجاد شد.", + "updateTrigger": "تریگر {{name}} با موفقیت به‌روزرسانی شد.", + "deleteTrigger": "تریگر {{name}} با موفقیت حذف شد." + }, + "error": { + "createTriggerFailed": "ایجاد تریگر ناموفق بود: {{errorMessage}}", + "updateTriggerFailed": "به‌روزرسانی تریگر ناموفق بود: {{errorMessage}}", + "deleteTriggerFailed": "حذف تریگر ناموفق بود: {{errorMessage}}" + } + }, + "addTrigger": "افزودن محرک" } } diff --git a/web/public/locales/fa/views/system.json b/web/public/locales/fa/views/system.json index b33d6e505..090d4a97f 100644 --- a/web/public/locales/fa/views/system.json +++ b/web/public/locales/fa/views/system.json @@ -5,7 +5,197 @@ "general": "آمار عمومی - فریگیت", "enrichments": "آمار بهینه سازی - فریگیت", "logs": { - "frigate": "ثبت رخدادهای فریگیت - فریگیت" + "frigate": "ثبت رخدادهای فریگیت - فریگیت", + "go2rtc": "گزارش‌های Go2RTC - فریگیت", + "nginx": "گزارش‌های Nginx - فریگیت" } - } + }, + "title": "سیستم", + "metrics": "شاخص‌های سیستم", + "logs": { + "download": { + "label": "دانلود گزارش‌ها" + }, + "copy": { + "label": "کپی در کلیپ‌بورد", + "success": "گزارش‌ها در کلیپ‌بورد کپی شدند", + "error": "نمی‌توان گزارش‌ها را در کلیپ‌بورد کپی کرد" + }, + "type": { + "label": "نوع", + "timestamp": "برچسب زمانی", + "tag": "تگ", + "message": "پیام" + }, + "tips": "گزارش‌ها از سرور به‌صورت زنده در حال دریافت هستند", + "toast": { + "error": { + "fetchingLogsFailed": "خطا در دریافت گزارش‌ها: {{errorMessage}}", + "whileStreamingLogs": "خطا هنگام پخش زندهٔ گزارش‌ها: {{errorMessage}}" + } + } + }, + "general": { + "hardwareInfo": { + "title": "اطلاعات سخت‌افزار", + "gpuUsage": "مصرف GPU", + "gpuMemory": "حافظهٔ GPU", + "gpuEncoder": "رمزگذار GPU", + "gpuDecoder": "رمزگشای GPU", + "gpuInfo": { + "vainfoOutput": { + "title": "خروجی Vainfo", + "returnCode": "کد بازگشتی: {{code}}", + "processOutput": "خروجی فرایند:", + "processError": "خطای فرایند:" + }, + "nvidiaSMIOutput": { + "title": "خروجی Nvidia SMI", + "name": "ذخیرهٔ جست‌وجونام: {{name}}", + "driver": "درایور: {{driver}}", + "cudaComputerCapability": "قابلیت محاسباتی CUDA: {{cuda_compute}}", + "vbios": "اطلاعات VBios: {{vbios}}" + }, + "closeInfo": { + "label": "بستن اطلاعات GPU" + }, + "copyInfo": { + "label": "کپی اطلاعات GPU" + }, + "toast": { + "success": "اطلاعات GPU در کلیپ‌بورد کپی شد" + } + }, + "npuUsage": "میزان استفاده از NPU", + "npuMemory": "حافظهٔ NPU", + "intelGpuWarning": { + "title": "هشدار آمار GPU اینتل", + "message": "آمار GPU در دسترس نیست", + "description": "این یک باگ شناخته‌شده در ابزارهای گزارش‌دهی آمار GPU اینتل (intel_gpu_top) است که باعث می‌شود از کار بیفتد و حتی در مواردی که شتاب‌دهی سخت‌افزاری و تشخیص شیء به‌درستی روی (i)GPU اجرا می‌شوند، به‌طور مکرر میزان استفادهٔ GPU را ۰٪ برگرداند. این مشکل مربوط به Frigate نیست. می‌توانید میزبان را ری‌استارت کنید تا موقتاً مشکل برطرف شود و تأیید کنید که GPU درست کار می‌کند. این موضوع روی عملکرد تأثیری ندارد." + } + }, + "title": "عمومی", + "detector": { + "title": "آشکارسازها", + "inferenceSpeed": "سرعت استنتاج آشکارساز", + "temperature": "دمای آشکارساز", + "cpuUsage": "مصرف CPU آشکارساز", + "cpuUsageInformation": "CPU برای آماده‌سازی داده‌های ورودی و خروجی به/از مدل‌های تشخیص استفاده می‌شود. این مقدار مصرف استنتاج را اندازه‌گیری نمی‌کند، حتی اگر از GPU یا شتاب‌دهنده استفاده شود.", + "memoryUsage": "مصرف حافظهٔ آشکارساز" + }, + "otherProcesses": { + "title": "فرایندهای دیگر", + "processCpuUsage": "میزان استفادهٔ CPU فرایند", + "processMemoryUsage": "میزان استفادهٔ حافظهٔ فرایند" + } + }, + "storage": { + "recordings": { + "earliestRecording": "قدیمی‌ترین ضبط موجود:", + "title": "ضبط‌ها", + "tips": "این مقدار نشان‌دهندهٔ کل فضای ذخیره‌سازیِ استفاده‌شده توسط ضبط‌ها در پایگاه‌دادهٔ Frigate است. Frigate میزان استفاده از فضای ذخیره‌سازیِ همهٔ فایل‌های روی دیسک شما را ردیابی نمی‌کند." + }, + "shm": { + "warning": "اندازهٔ فعلی SHM برابر {{total}}MB خیلی کوچک است. آن را دست‌کم به {{min_shm}}MB افزایش دهید.", + "title": "اختصاص SHM (حافظهٔ اشتراکی)" + }, + "cameraStorage": { + "title": "ذخیره‌سازی دوربین", + "unusedStorageInformation": "اطلاعات فضای ذخیره‌سازیِ استفاده‌نشده", + "percentageOfTotalUsed": "درصد از کل", + "unused": { + "title": "استفاده‌نشده", + "tips": "اگر فایل‌های دیگری غیر از ضبط‌های Frigate روی دیسک شما ذخیره شده باشد، این مقدار ممکن است فضای آزادِ در دسترس برای Frigate را دقیق نشان ندهد. Frigate میزان استفاده از فضای ذخیره‌سازی خارج از ضبط‌های خودش را ردیابی نمی‌کند." + }, + "camera": "دوربین", + "storageUsed": "ذخیره‌سازی", + "bandwidth": "پهنای باند" + }, + "title": "ذخیره‌سازی", + "overview": "نمای کلی" + }, + "cameras": { + "overview": "نمای کلی", + "info": { + "cameraProbeInfo": "اطلاعات پروب دوربین {{camera}}", + "fetching": "در حال دریافت داده‌های دوربین", + "video": "ویدئو:", + "fps": "FPS:", + "audio": "صدا:", + "aspectRatio": "نسبت تصویر", + "streamDataFromFFPROBE": "داده‌های جریان با ffprobe به‌دست می‌آید.", + "stream": "جریان {{idx}}", + "codec": "کدک:", + "resolution": "وضوح:", + "unknown": "نامشخص", + "error": "خطا: {{error}}", + "tips": { + "title": "اطلاعات بررسی دوربین" + } + }, + "framesAndDetections": "فریم‌ها / تشخیص‌ها", + "label": { + "detect": "تشخیص", + "capture": "گرفتن", + "overallDetectionsPerSecond": "مجموع تشخیص‌ها در ثانیه", + "cameraCapture": "گرفتن {{camName}}", + "cameraDetectionsPerSecond": "تشخیص‌ها در ثانیهٔ {{camName}}", + "camera": "دوربین", + "skipped": "رد شد", + "ffmpeg": "FFmpeg", + "overallFramesPerSecond": "نرخ کلی فریم بر ثانیه", + "overallSkippedDetectionsPerSecond": "نرخ کلی تشخیص‌های ردشده بر ثانیه", + "cameraDetect": "تشخیص {{camName}}", + "cameraFfmpeg": "{{camName}} FFmpeg", + "cameraFramesPerSecond": "{{camName}} فریم بر ثانیه", + "cameraSkippedDetectionsPerSecond": "{{camName}} تشخیص‌های ردشده در ثانیه" + }, + "toast": { + "error": { + "unableToProbeCamera": "پروبِ دوربین ناموفق بود: {{errorMessage}}" + }, + "success": { + "copyToClipboard": "داده‌های بررسی در کلیپ‌بورد کپی شد." + } + }, + "title": "دوربین‌ها" + }, + "stats": { + "ffmpegHighCpuUsage": "{{camera}} استفادهٔ CPU بالایی برای FFmpeg دارد ({{ffmpegAvg}}%)", + "detectHighCpuUsage": "{{camera}} استفادهٔ CPU بالایی برای تشخیص دارد ({{detectAvg}}%)", + "reindexingEmbeddings": "بازتولید نمایهٔ embeddingها ({{processed}}% تکمیل شده)", + "cameraIsOffline": "{{camera}} آفلاین است", + "detectIsVerySlow": "{{detect}} بسیار کند است ({{speed}} ms)", + "shmTooLow": "اختصاص /dev/shm ({{total}} MB) باید دست‌کم تا {{min}} MB افزایش یابد.", + "healthy": "سامانه سالم است", + "detectIsSlow": "{{detect}} کند است ( {{speed}} میلی‌ثانیه )" + }, + "enrichments": { + "infPerSecond": "استنتاج‌ها در ثانیه", + "embeddings": { + "text_embedding": "امبدینگ متن", + "image_embedding_speed": "سرعت امبدینگ تصویر", + "plate_recognition_speed": "سرعت تشخیص پلاک", + "yolov9_plate_detection": "تشخیص پلاک YOLOv9", + "review_description_events_per_second": "توضیح بازبینی", + "object_description": "توضیح شیء", + "image_embedding": "امبدینگ تصویر", + "face_recognition": "شناسایی چهره", + "plate_recognition": "شناسایی پلاک", + "face_embedding_speed": "سرعت امبدینگ چهره", + "face_recognition_speed": "سرعت شناسایی چهره", + "text_embedding_speed": "سرعت امبدینگ متن", + "yolov9_plate_detection_speed": "سرعت تشخیص پلاک YOLOv9", + "review_description": "توضیحات بازبینی", + "review_description_speed": "سرعت توضیحات بازبینی", + "object_description_speed": "سرعت توضیحات شیء", + "object_description_events_per_second": "توضیحات شیء", + "classification": "طبقه‌بندی {{name}}", + "classification_speed": "سرعت طبقه‌بندی {{name}}", + "classification_events_per_second": "رویدادهای طبقه‌بندی {{name}} در ثانیه" + }, + "title": "غنی‌سازی‌ها", + "averageInf": "میانگین زمان استنتاج" + }, + "lastRefreshed": "آخرین به‌روزرسانی: · " }